CVE-2026-49753
ŚrednieCVSS 6.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
Biblioteka Mint w języku Elixir przed wersją 1.9.0 zawiera podatność na przemycanie odpowiedzi HTTP (HTTP response smuggling). Parser Content-Length akceptuje znaki + i -, co jest niezgodne z RFC 7230. Atakujący serwer HTTP/1 może spowodować desynchronizację ramek odpowiedzi na współdzielonych połączeniach.
Ocena ryzyka
Atakujący może przemycić odpowiedzi HTTP, co może prowadzić do wycieku danych między różnymi konsumentami na współdzielonym połączeniu.
Rekomendacja
Należy zaktualizować bibliotekę Mint do wersji 1.9.0 lub nowszej.
Inne podatności w Mint
Zobacz wszystkie- CVE-2026-59249Średnie
Podatność w bibliotece Mint (wersje od 0.1.0 do 1.9.2) umożliwia przemycanie odpowiedzi HTTP (HTTP response smuggling) poprzez akceptowanie znaku plus/minus w rozmiarze fragmentu kodowania Transfer-Encoding: chunked. Złośliwy serwer HTTP/1 może wykorzystać tę niezgodność interpretacji, aby zatruć kolejkę odpowiedzi na współdzielonym połączeniu keep-alive, co prowadzi do przekazania fałszywych odpowiedzi do kolejnych żądań.
- CVE-2026-59246Średnie
Podatność w bibliotece Mint dla języka Elixir pozwala zdalnemu serwerowi HTTP/2 na wyczerpanie pamięci klienta poprzez wysyłanie nieskończonego ciągu ramek CONTINUATION z zerową długością. Mechanizm akumulacji nagłówków nie jest odpowiednio chroniony przed takim atakiem, co prowadzi do odmowy usługi (DoS).
- CVE-2026-58229Wysokie
Podatność w bibliotece Mint dla języka Elixir pozwala zdalnemu serwerowi HTTP na wyczerpanie pamięci klienta i spowodowanie odmowy usługi (DoS). Funkcje dekodujące nagłówki HTTP gromadzą je bez ograniczeń, a parser nie ma limitu liczby ani rozmiaru nagłówków, co umożliwia atakującemu wysyłanie nieskończonej liczby linii nagłówków bez kończącej pustej linii.
- CVE-2026-56810Wysokie
Podatność w bibliotece Mint (moduł Mint.HTTP1) pozwala zdalnemu serwerowi na wyczerpanie pamięci klienta poprzez wysłanie odpowiedzi z kodowaniem chunked transfer, w której deklaruje ogromny rozmiar fragmentu (np. 2 GiB) i przesyła dane bardzo wolno, nigdy nie kończąc fragmentu. Klient buforuje wszystkie odebrane bajty bez przekazywania ich do wywołującego, co prowadzi do niekontrolowanego wzrostu użycia pamięci i warunków out-of-memory.
- CVE-2026-49754Wysokie
Podatność w bibliotece Mint dla Elixira pozwala atakującemu serwerowi HTTP/2 wyczerpać pamięć klienta poprzez ciąg CONTINUATION ramek (tzw. CONTINUATION flood). Brak limitu rozmiaru akumulatora dla nagłówków, co prowadzi do wyczerpania pamięci i śmierci procesu BEAM.
- CVE-2026-48862Wysokie
Podatność w bibliotece Mint dla Elixira pozwala atakującemu serwerowi HTTP/2 wyczerpać pamięć klienta poprzez zalewanie ramkami PUSH_PROMISE. Serwer może tworzyć nieograniczoną liczbę wpisów w strumieniach, bez sprawdzania limitu max_concurrent_streams, co prowadzi do wyczerpania pamięci.
- CVE-2026-48861Niskie
Podatność na wstrzykiwanie CRLF w bibliotece elixir-mint (Mint) przed wersją 1.9.0 umożliwia ataki typu HTTP Request Splitting i HTTP Request Smuggling. Funkcja encode_request_line/2 w lib/mint/http1/request.ex łączy dostarczone przez użytkownika argumenty metody i celu bezpośrednio w linię żądania HTTP/1 bez walidacji znaków. Aplikacja przekazująca kontrolowane przez atakującego dane wejściowe jako metodę HTTP lub cel do Mint.HTTP.request/5 jest narażona na wstrzyknięcie CRLF w linii żądania. Mint 1.7.0 wprowadził validate_request_target/2, który odrzuca CRLF i inne znaki kontrolne w celu domyślnie, ale pole metody pozostaje niewalidowane.
Oryginalny opis (angielski, źródło NVD)
Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint Mint allows attacker-controlled HTTP/1 servers to desynchronise response framing on shared connections. Mint's HTTP/1 Content-Length parser, Mint.HTTP1.Parse.content_length_header/1 in lib/mint/http1/parse.ex, parses the header value with Integer.parse/1, which accepts an optional + or - sign prefix. The length >= 0 guard rejects negatives, but inputs such as +0 or +123 are returned as valid lengths. RFC 7230 specifies Content-Length = 1*DIGIT, with no sign character permitted. A fronting proxy or load balancer that strictly enforces the grammar will reject or reframe a header like Content-Length: +0, while Mint silently treats it as zero. When Mint reuses the socket (keep-alive, pipelining, or any pooled connection shared across requesters), the parser disagreement is a response-smuggling primitive: the proxy delimits the body one way, Mint another, and bytes from one response get attributed to the next. Where the same Mint connection is shared across trust boundaries, an attacker-controlled upstream can leak bytes into a different consumer's response stream. This issue affects mint: from 0.1.0 before 1.9.0.

