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

CVE-2026-111103

Bandit HTTP/2 uygulamasında StreamError sonrası bağlantı durumunun geri alınması ve bağlantı başına limitlerin aşılması

mtrudel bandit

Yüksek 8,2 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 işleyicisinde, istisna fırlatıldıktan sonra uygun temizlik yapılmamasından kaynaklanan bir zafiyet bulunmaktadır. Kimlik doğrulaması yapılmamış uzak bir saldırgan, birden fazla çerçeve içeren tek bir TCP yazımı ile bağlantı başına kaynak limitlerini aşabilir. Bir çerçeve parça halindeki veri içinde StreamError fırlattığında, Bandit.HTTP2.Handler.handle_data/3 RST_STREAM gönderir ve parçadan önceki bağlantı durumuyla devam ederek parçanın geri kalanını düşürür. Parçadaki önceki çerçevelerle açılan akışlar Plug çağrılarını çalıştırmaya devam eder; ancak akış sayıları, last_stream_id, hızlı sıfırlama (rapid-reset) zaman damgaları, HPACK çözücü durumu ve tampon geri alınır. Bu nedenle max_concurrent_streams, max_requests ve hızlı sıfırlama sınırlayıcısı bu akışları hiç görmez. Her yazımda max_concurrent_streams sayısından bir HEADERS çerçevesi fazla gönderen bir istemcinin fazla çerçevesi reddedilir, diğerleri ise unutulur; limit 10 iken beş böyle yazım aynı anda 50 Plug çağrısı çalıştırır. Bu sorun bandit sürümlerinin 1.9.0 ile 1.14.0 öncesini etkilemektedir. Satıcının geçici çözümü, savunmasız HTTP/2 işleyicisinin hiç çalışmaması için http_2_options: [enabled: false] ile HTTP/2 özelliğini devre dışı bırakmaktır.

Kaynaktaki açıklama (İngilizce)

Improper Cleanup on Thrown Exception vulnerability in the HTTP/2 handler of mtrudel bandit allows an unauthenticated remote attacker to bypass per-connection resource limits via a single TCP write that carries several frames, one of which raises a stream error.

When a frame raises StreamError partway through a chunk, Bandit.HTTP2.Handler.handle_data/3 sends RST_STREAM and continues with the connection state from before the chunk, dropping the rest of it. Streams opened by earlier frames in the chunk keep running their Plug calls, but the stream counts, last_stream_id, the rapid-reset timestamps, the HPACK decoder state and the buffer roll back, so max_concurrent_streams, max_requests and the rapid-reset limiter never see those streams. A client that sends one HEADERS frame more than max_concurrent_streams in each write has the extra refused and the others forgotten: with a limit of 10, five such writes run 50 Plug calls at once.

This issue affects bandit: from 1.9.0 before 1.14.0.

Üreticinin geçici önlemi (İngilizce)

Disable HTTP/2 with http_2_options: [enabled: false], so that the vulnerable HTTP/2 handler never runs.

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 ≥ 1.9.0, < 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.