Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • Yama var
  • Son 7 gün
  • CWE-789

CVE-2026-104895

jackson-dataformat-smile: asenkron ayrıştırıcıda sınırsız bellek ayırma, hizmet reddi

FasterXML jackson-dataformat-smile

Yüksek 7,5 CVSS 3.1
Yayımlandı
Güncellendi
28 Eki 2026
Açık yaşı
0 gün
Kaydı açan
HeroDevs

Yönetici özeti

Bu açık, kötü niyetli kişilerin kısa bir veriyle sunucunun belleğini tüketip uygulamayı çökertmesine olanak tanır. Bu durum hizmet kesintisine ve iş sürekliliği kaybına yol açabilir. Etkilenen sistemlerin satıcının sağladığı düzeltilmiş sürüme hızla yükseltilmesi önerilir.

ÖzetTürkçe

jackson-dataformat-smile kütüphanesinin asenkron Smile ayrıştırıcısı (NonBlockingByteArrayParser), ham ikili veri için güvenilmeyen girdiden gelen uzunluk değerini üst sınır ve taşma kontrolü olmadan kullanarak gövde okunmadan önce byte[] ayırır. Ham ikili veri işaretçisinde VInt hesaplaması taşma korumasından yoksundur, bu nedenle birkaç baytlık bir veriyle yaklaşık 2 GB bellek ayrımı tetiklenebilir. Etkilenen sürümler, Smile verisi işleyen reaktif veya asenkron uç noktaları kullanan uygulamalardır.

Saldırgan ne yapabilir?

Saldırgan, kısa bir Smile verisi göndererek OutOfMemoryError oluşturabilir veya taşma yapan bir uzunlukla negatif dizi boyutu hatası (NegativeArraySizeException) tetikleyebilir. Sonuç, isteğin veya işlem iş parçacığının çökmesi ve hizmetin kullanılamaz hale gelmesidir.

Kaynaktaki açıklama (İngilizce)

The asynchronous Smile parser (NonBlockingByteArrayParser) uses a raw-binary length prefix taken from untrusted input to allocate a byte[] before the body is read, with no upper bound and no overflow check. On the raw-binary marker 0xFD, _decodeVInt() computes (value << 6) + (i & 0x3F) without the (value >>> 25) != 0 overflow guard present in the blocking SmileParser._readUnsignedVInt, and _startRawBinary then allocates the declared length immediately.

A Smile feed of roughly ten bytes can therefore force an eager allocation of approximately 2 GB, producing an OutOfMemoryError on reactive or asynchronous Smile endpoints. A VInt crafted to overflow int yields a negative length and a NegativeArraySizeException, a RuntimeException that is not a JacksonException and so escapes the parser contract. Either outcome crashes the request or processing thread.

This is the same class of issue as CVE-2020-28491 in the CBOR parser of this library, which was fixed with a LONGEST_NON_CHUNKED_BINARY guard; the asynchronous Smile parser never received the equivalent guard. No privileges or user interaction beyond the ability to submit data for parsing are required.

Ne yapmalı?

  1. Kütüphaneyi, kullandığınız dal için düzeltilmiş sürüme yükseltin: 2.18.x dalında 2.18.12, 2.21.x dalında 2.21.8, 2.22.x dalında 2.22.4, 3.1.x dalında 3.1.8, 3.2.x dalında 3.2.4 veya üzeri. Üretici
  2. Yükseltme sonrasında uygulamayı yeniden derleyip dağıtın ve bağımlılık ağacında eski sürümün kalmadığını doğrulayın. Genel öneri
  3. Düzeltme yapılana kadar Smile biçiminde veri kabul eden asenkron uç noktaları geçici olarak devre dışı bırakın veya bu uç noktalara erişimi güvenilir kaynaklarla sınırlandırın. Genel öneri

Ek önlemler

  • Gelen istek gövdeleri için makul bir boyut sınırı uygulayın ve ayrıştırmadan önce sınırı aşan istekleri reddedin. Genel öneri
  • Bellek kullanımını ve OutOfMemoryError kayıtlarını izleyin; ani bellek artışları ve tekrarlayan çökmeler için uyarı kuralları tanımlayın. Genel öneri
  • Kullanılmayan veri biçimi bağımlılıklarını uygulamanızdan kaldırarak saldırı yüzeyini azaltın. Genel öneri

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
FasterXML jackson-dataformat-smile ≥ 2.9.0, < 2.18.12 2.18.12
2.18.12 Etkilenmiyor –
≥ 2.19.0, < 2.21.8 2.21.8
2.21.8 Etkilenmiyor –
≥ 2.22.0, < 2.22.4 2.22.4
2.22.4 Etkilenmiyor –
≥ 3.0.0, < 3.1.8 3.1.8
3.1.8 Etkilenmiyor –
≥ 3.2.0, < 3.2.4 3.2.4
3.2.4 Etkilenmiyor –

Kaynaklar3 kaynak

Kayıt geçmişi

  1. Yayımlandı

İlgili açıklar

Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.