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

CVE-2026-113431

cowlib HTTP/2 çözümlenmiş başlık boyutu sınırsız: HPACK ile bellek tükenmesi

ninenines cowlib

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

Yönetici özeti

Bu açık, kimlik doğrulaması gerekmeden uzaktan tetiklenebilen ve sunucuların yanıt vermez hale gelmesine yol açabilen bir hizmet kesintisi riskidir. Bildirilen bir veri sızıntısı yoktur, ancak HTTP/2 kullanan web hizmetlerinin çökmesi iş sürekliliğini doğrudan etkileyebilir. Etkilenen sistemlerin hızla gözden geçirilmesi önerilir.

ÖzetTürkçe

cowlib kütüphanesinin 2.7.0 ve sonrası sürümlerinde, HTTP/2 HEADERS bloklarını çözen cow_http2_machine modülü, çözümlenmiş başlık listesinin boyutunu sınırlamaz. Saldırgan, HPACK dinamik tablosunu ve indeksli alanları kullanarak yaklaşık 100 bayt ağ trafiğiyle yaklaşık 390 KB'lık bir başlık listesi üretebilir. Bu verileri akış başına kopyalayan Cowboy gibi sunucular, bellek tükenmesine maruz kalır.

Saldırgan ne yapabilir?

Kimliği doğrulanmamış uzak bir saldırgan, HTTP/2 uç noktasının belleğini tüketerek hizmeti kesintiye uğratabilir. Bildirilen etki bellek tükenmesi ile hizmet reddidir; veri okuma veya değiştirme imkânı belirtilmemiştir.

Kaynaktaki açıklama (İngilizce)

Allocation of Resources Without Limits or Throttling vulnerability in ninenines cowlib allows an unauthenticated remote peer to exhaust the memory of an HTTP/2 endpoint via HPACK-indexed header fields.

cow_http2_machine:headers_decode/4 in src/cow_http2_machine.erl decodes every HEADERS block with cow_hpack:decode/3. It bounds the compressed block size and the number of fields, but not the size of the decoded header list that RFC 9113 section 6.5.2 places under SETTINGS_MAX_HEADER_LIST_SIZE. A peer stores one header value of up to the dynamic table size (4096 bytes by default) and then references it with one-byte indexed fields, so about 100 bytes on the wire decode to a header list of about 390 KB. A consumer that copies the decoded values, as Cowboy does when cowboy_http2:headers_to_map/2 joins repeated cookie fields into one binary, allocates that amount for every stream. The total across streams and connections is not bounded.

This issue affects cowlib: from 2.7.0 onward.

Üreticinin geçici önlemi (İngilizce)

Cowboy servers that do not need HTTP/2 can set protocols => [http] in the protocol options. The listener then answers the HTTP/2 preface with 501 Not Implemented and the decoder is never reached.

Lowering max_headers in the HTTP/2 protocol options shrinks the per-stream allocation in proportion, to about max_headers times the 4096-byte table entry. This reduces the amplification but does not remove it.

Ne yapmalı?

  1. Bildirilen veriye göre düzeltilmiş bir sürüm bilgisi henüz yoktur. Kullanılan cowlib sürümünü kontrol edin ve üretici kaynaklarından düzeltme yayımlandığında güncelleyin. Genel öneri
  2. HTTP/2'ye ihtiyaç duymayan Cowboy sunucularında protocols => [http] ayarını kullanın. Bu durumda HTTP/2 önsözü 501 Not Implemented ile yanıtlanır ve sorunlu çözümleyici hiç çalıştırılmaz. Üretici
  3. HTTP/2 kullanmak zorundaysanız HTTP/2 protokol seçeneklerindeki max_headers değerini düşürün. Bu, akış başına ayrılan belleği azaltır ancak sorunu tamamen ortadan kaldırmaz. Üretici
  4. Düzeltme sürümü yayımlandığında cowlib bağımlılığını güncelleyin ve güncellemeden sonra sunucuların bellek kullanımını izleyin. Genel öneri

Ek önlemler

  • HTTP/2 kullanılmıyorsa bu protokolü tamamen kapatmak en etkili önlemdir. Genel öneri
  • Sunucu bellek kullanımını ve bağlantı sayısını izleyerek ani artışları ve olağandışı istek kalıplarını takip edin. Genel öneri
  • Ters vekil sunucu veya yük dengeleyici üzerinde istek başlığı boyutuna ilişkin sınırları gözden geçirin. Genel öneri

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
ninenines cowlib ≥ 2.7.0 –

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