CVE-2026-43970
WysokieStreszczenie
Podatność CVE-2026-43970 dotyczy niewłaściwego przetwarzania silnie skompresowanych danych w bibliotece cowlib, co może prowadzić do zdalnego ataku typu denial of service poprzez wyczerpanie pamięci. Umożliwia to nieautoryzowanym użytkownikom wysyłanie odpowiednio skonstruowanych ramek SPDY, które mogą spowodować znaczny wzrost zużycia pamięci.
Ocena ryzyka
Organizacje korzystające z cowlib mogą być narażone na ataki, które prowadzą do awarii usług z powodu wyczerpania pamięci, co może skutkować przestojami i utratą dostępności aplikacji.
Rekomendacja
Zaleca się aktualizację biblioteki cowlib do wersji 2.16.1 lub nowszej, aby usunąć tę podatność. Dodatkowo, warto wprowadzić ograniczenia dotyczące rozmiaru danych wejściowych w celu zminimalizowania ryzyka.
Inne podatności w cowlib
Zobacz wszystkie- CVE-2026-43971Średnie
Luka w kodowaniu lub escapowaniu wyjścia w ninenines cowlib umożliwia przemycanie dyrektyw Link header przez nieescapowane znaki specjalne w cow_link:link/1. cow_link:do_link/1 interpoluje docelowy URI, wartość rel i klucze atrybutów bezpośrednio do serializowanej wartości nagłówka Link: bez escapowania lub walidacji gramatyki tokenów. Bajt > w celu przedwcześnie zamyka slot URI, pozwalając atakującemu na dodanie dodatkowych wpisów linków z wybranymi przez atakującego dyrektywami rel. Znak " lub \ w rel ucieka z ciągu znaków i otwiera nowe parametry. Dowolny bajt — w tym biały znak, = i " — w kluczu atrybutu jest emitowany dosłownie. Ponieważ przeglądarki działają na dyrektywach Link: takich jak rel="preconnect", rel="preload" i rel="prerender", atakujący, który może wpływać na te pola w aplikacji, która przetwarza nagłówki Link przez cow_link:link/1, może zmusić przeglądarki ofiar do nawiązywania połączeń poza pasmem do kontrolowanych przez atakującego źródeł. Problem dotyczy cowlib od wersji 2.9.0.
- CVE-2026-59248Wysokie
Podatność w bibliotece cowlib umożliwia nieuwierzytelnionemu zdalnemu atakującemu wyczerpanie pamięci serwera lub klienta poprzez wysłanie specjalnie spreparowanych ramek HTTP/2 lub HTTP/3. Problem wynika z braku ograniczeń w dekoderze HPACK i QPACK, który przetwarza dowolnie długie prefiksowane liczby całkowite, powodując alokację dużych obiektów bignum i intensywną pracę garbage collectora.
- CVE-2026-43966Średnie
W bibliotece cowlib w wersji 2.9.0 występuje podatność na dzielenie odpowiedzi HTTP (HTTP response splitting) spowodowana nieprawidłowym neutralizowaniem sekwencji CRLF w nagłówkach HTTP. Funkcja cow_http_struct_hd:escape_string/2 niepoprawnie obsługuje znaki spoza zakresu ASCII, co pozwala atakującemu na wstrzyknięcie znaków CR i LF do wartości nagłówka, prowadząc do podziału odpowiedzi HTTP.
- CVE-2026-43969Niskie
Podatność CRLF Injection w bibliotece cowlib umożliwia dzielenie żądań HTTP i przemycanie ciasteczek przez niezweryfikowane nazwy i wartości ciasteczek. Funkcja cow_cookie:cookie/1 buduje nagłówek Cookie bez walidacji, co pozwala atakującemu na wstrzyknięcie znaków ;, ,, CR, LF lub TAB.
Oryginalny opis (angielski, źródło NVD)
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in ninenines cowlib allows unauthenticated remote denial of service via memory exhaustion. cow_spdy:inflate/2 in cowlib passes peer-supplied compressed bytes directly to zlib:inflate/2 with no output size bound. The SPDY header compression dictionary (?ZDICT) is public, and zlib compresses long runs of repeated bytes at roughly 1024:1, so a few kilobytes of SPDY frame payload can decompress to gigabytes on the BEAM heap, OOM-killing the node. A single unauthenticated SPDY frame is sufficient to trigger the condition. The parsers for syn_stream, syn_reply, and headers frame types are all affected via cow_spdy:parse_headers/2. This issue affects cowlib from 0.1.0 before 2.16.1.

