CVE-2026-59249
ŚrednieCVSS 6.3Streszczenie
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ń.
Ocena ryzyka
Atakujący może wstrzyknąć złośliwe dane do odpowiedzi HTTP, które zostaną odebrane przez klienta Mint jako odpowiedź na inne, niezwiązane żądanie. Może to prowadzić do kradzieży danych, naruszenia integralności sesji lub wykonania nieautoryzowanych działań w kontekście ofiary.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę Mint do wersji 1.9.3 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy tymczasowo wyłączyć użycie połączeń keep-alive lub zastosować dodatkowe proxy zgodne z RFC.
Inne podatności w Mint
Zobacz wszystkie- 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-49753Średnie
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.
- 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 response smuggling) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on the same pooled connection, enabling response-queue poisoning against subsequent requests that share the connection. The Mint.HTTP1.decode_body/5 function in lib/mint/http1.ex parses the chunk-size line of a Transfer-Encoding: chunked response with Integer.parse(data, 16). RFC 7230 defines chunk-size = 1*HEXDIG and forbids any sign prefix, but Integer.parse/2 accepts an optional leading + or -. A chunk-size line of +5 is accepted as a five-byte chunk; lines of +0 and -0 are accepted as the terminating zero-length chunk and end the message body early. An RFC-strict intermediary in the response path rejects these forms, so the intermediary and the Mint client disagree on where one response ends and the next begins. On a pooled keep-alive connection, an attacker-influenced origin can inject bytes that the client attributes to the next legitimate response on the same connection, poisoning the response queue and corrupting the responses returned to unrelated in-flight requests. This issue affects mint: from 0.1.0 before 1.9.3.

