- Yama var
- Son 7 gün
- CWE-409
CVE-2026-109584
Bandit HTTP/2 çerez birleştirme işlevi, küçük HPACK başlık bloklarıyla sınırsız bellek tahsisine yol açıyor
- Yayımlandı
- Güncellendi
- 26 Eki 2026
- Açık yaşı
- 2 gün
- Kaydı açan
- EEF
ÖzetTürkçe
Bandit'in HTTP/2 uygulamasında yüksek oranda sıkıştırılmış verilerin hatalı işlenmesinden (veri büyütme) kaynaklanan bir zafiyet bulunmaktadır. Kimlik doğrulaması olmayan uzaktan bir saldırgan, küçük bir HPACK ile sıkıştırılmış HEADERS bloğu göndererek sunucu belleğini tüketebilir. Blok, HPACK dinamik tablosunda büyük bir çerez değeri saklar ve bu değere on binlerce kez 1 baytlık indekslenmiş alanlarla başvurur. Bildirenin yaptığı testte, varsayılan ayarlardaki bir sunucuda 49 KB'lık bir blok, herhangi bir uygulama kodu çalışmadan önce 183 MB'lık bir çerez ikilisi tahsis ettirmiştir. Eşzamanlı her akış bu maliyeti tekrarlayabilmektedir.
Bandit.HTTP2.Connection yalnızca sıkıştırılmış bloğu (max_header_block_size) sınırlandırmaktadır; çözümlenmiş liste üzerindeki max_header_list_size kontrolü ise bu ayar varsayılan olarak :infinity olduğu için hiçbir zaman tetiklenmemektedir. lib/bandit/http2/stream.ex dosyasındaki combine_cookie_crumbs/1 fonksiyonu, tüm çerez parçalarını tek bir ikiliye birleştirmektedir.
Bu sorun, 0.3.3 sürümünden 1.14.0 öncesine kadar olan bandit sürümlerini etkilemektedir.
Kaynaktaki açıklama (İngilizce)
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in the HTTP/2 implementation of mtrudel bandit allows an unauthenticated remote attacker to exhaust server memory via a small HPACK-compressed HEADERS block. The block stores one large cookie value in the HPACK dynamic table and then references it tens of thousands of times with 1-byte indexed fields. In the reporter's run, a 49 KB block made a server with default settings allocate a 183 MB cookie binary before any application code ran, and every concurrent stream can repeat the cost.
Bandit.HTTP2.Connection caps only the compressed block (max_header_block_size), and its check of the decoded list against max_header_list_size never fires because that setting defaults to :infinity. combine_cookie_crumbs/1 in lib/bandit/http2/stream.ex then joins every crumb into one binary.
This issue affects bandit: from 0.3.3 before 1.14.0.
Üreticinin geçici önlemi (İngilizce)
On 1.12.2 and later, set a finite decoded header list limit, for example http_2_options: [default_local_settings: [max_header_list_size: 65_536]], which resets the stream before the cookie crumbs are joined. From 0.7.0, disabling HTTP/2 with http_2_options: [enabled: false] removes the vulnerable path.
Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| mtrudel bandit | ≥ 0.3.3, < 1.14.0 | 1.14.0 |
Kaynaklar7 kaynak
- CVE.org kaydı
- NVD kaydı
- github.com/…bandit/security/advisories/GHSA-7gfj-7gvq-3xqj Üretici bülteni
- github.com/…ommit/220b9dfd27f9a21305be2afc75cbe585ddc24e7a Yama
- cna.erlef.org/cves/CVE-2026-109584.html Diğer
- osv.dev/vulnerability/EEF-CVE-2026-109584 Diğer
- github.com/…ommit/44bf969cd59851622fb6ee4d16227fbc39a77fb4 Diğer
Kayıt geçmişi
- 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.