CVE-2026-43966
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może manipulować odpowiedziami HTTP, co może prowadzić do zatrucia pamięci podręcznej, przechwytywania sesji lub ataków typu cross-site scripting (XSS) na użytkowników aplikacji korzystającej z cowlib.
Rekomendacja
Należy zaktualizować bibliotekę cowlib do wersji 2.9.1 lub nowszej, która zawiera poprawkę neutralizującą znaki CRLF w wartościach nagłówków strukturalnych.
Inne podatności w cowlib
Zobacz wszystkie- CVE-2026-43970Wysokie
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.
- 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-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 Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting') vulnerability in ninenines cowlib allows HTTP response splitting via non-VCHAR bytes in structured-fields string values. cow_http_struct_hd:escape_string/2 in cowlib only escapes \ and ", passing all other bytes through verbatim. This creates an encoder/decoder asymmetry: the matching parser accepts only printable ASCII (0x20–0x7E, excluding " and \), but the encoder emits any byte including CR and LF. An application that builds a structured HTTP header via cow_http_struct_hd:item/1 (or a higher-level wrapper such as cow_http_hd:wt_protocol/1) from attacker-controlled input can have \r\n injected into the serialized header value. Once on the wire, the injected CRLF terminates the current header and any following bytes are interpreted as a new header, enabling HTTP response splitting. This issue affects cowlib from 2.9.0.

