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

CVE-2026-110499

Bandit HTTP/2 uygulamasında HPACK tablo boyutu sınırlandırılmadan kabul ediliyor, bellek ve CPU tüketimi sınırsız artıyor

mtrudel bandit

Yüksek 8,7 CVSS 4.0
Yayımlandı
Güncellendi
26 Eki 2026
Açık yaşı
2 gün
Kaydı açan
EEF

ÖzetTürkçe

mtrudel bandit ürününün HTTP/2 uygulamasında, kaynak ayırma sınırlandırması veya kısıtlaması yapılmamasından kaynaklanan bir zafiyet bulunmaktadır. Kimlik doğrulaması yapılmamış uzak bir saldırgan, büyük bir SETTINGS_HEADER_TABLE_SIZE değeri göndererek bağlantı başına bellek ve CPU maliyetini sınırsız biçimde artırabilir. Bandit, HPACK kodlayıcı tablosunu istemcinin bildirdiği boyuta, 2^32-1 bayta kadar yeniden boyutlandırmakta ve yanıt başlıklarını bu tabloya indekslemektedir. Yanıtlar date veya content-length gibi farklı değerler içerdiğinden hiçbir girdi çıkarılmamakta ve tablo, bağlantının ömrü boyunca her yanıtla birlikte büyümektedir; ayrıca her arama tabloyu doğrusal olarak taramaktadır.

Bandit.HTTP2.Connection (lib/bandit/http2/connection.ex) içindeki SETTINGS işleme, remote_settings.header_table_size değerini sunucu tarafında herhangi bir üst sınır olmadan HPAX.resize/2 fonksiyonuna iletmekte ve encode_headers her yanıt başlığını :store olarak kodlamaktadır. Bu nedenle tek bir bağlantı üzerinde N yanıt sunulması, bağlantı sürecinde O(N²) CPU maliyetine yol açmaktadır.

Bu sorun, bandit sürümlerinde 0.3.6 ile 1.14.0 öncesi sürümleri etkilemektedir.

Kaynaktaki açıklama (İngilizce)

Allocation of Resources Without Limits or Throttling vulnerability in the HTTP/2 implementation of mtrudel bandit allows an unauthenticated remote attacker to grow per-connection memory and CPU cost without bound via a large SETTINGS_HEADER_TABLE_SIZE. Bandit resizes its HPACK encoder table to whatever size the client advertises, up to 2^32-1 bytes, and indexes response headers into it. Because responses carry distinct values such as date or content-length, nothing is evicted and the table grows with every response for the life of the connection, while each lookup scans it linearly.

The SETTINGS handling in Bandit.HTTP2.Connection (lib/bandit/http2/connection.ex) passes remote_settings.header_table_size to HPAX.resize/2 with no server-side cap, and encode_headers encodes every response header as :store. Serving N responses on one connection therefore costs O(N²) CPU in the connection process.

This issue affects bandit: from 0.3.6 before 1.14.0.

Üreticinin geçici önlemi (İngilizce)

From 0.7.0, cap the requests one HTTP/2 connection may serve, for example with http_2_options: [max_requests: 1000], so each connection and its encoder table is closed before the cost grows large. Alternatively, disable HTTP/2 with http_2_options: [enabled: false].

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ımEtkilenenDüzeltildiği sürüm
mtrudel bandit ≥ 0.3.6, < 1.14.0 1.14.0

Kaynaklar7 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.