CVE-2026-48862
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 31 - wyżej niż 31% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Pojedyncze długotrwałe połączenie do złośliwego serwera może wyczerpać pamięć klienta, powodując awarię i odmowę usługi.
Rekomendacja
Zaktualizuj 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-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-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)
Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding. In lib/mint/http2.ex, Mint.HTTP2.decode_push_promise_headers_and_add_response/5 inserts a :reserved_remote entry into conn.streams for every promised stream ID. The neighbouring Mint.HTTP2.assert_valid_promised_stream_id/2 only verifies that the promised ID is even and not already present; client_settings.max_concurrent_streams is not consulted at promise time. The concurrency cap is only checked when the response HEADERS for the promised stream arrive, so a server that emits PUSH_PROMISE frames and withholds the matching HEADERS never trips that check. HTTP/2 server push is accepted by default (client_settings.enable_push defaults to true). A single long-lived HTTP/2 connection to a hostile server lets that server pin one conn.streams entry per PUSH_PROMISE frame it sends, with no upper bound, until the client process runs out of memory. This issue affects mint: from 0.2.0 before 1.9.0.

