Katalog CVE

CVE-2026-82729

ŚrednieCVSS 6.3
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.49%

Percentyl 40 - wyżej niż 40% wszystkich znanych CVE

Streszczenie

Podatność nieefektywnej złożoności algorytmicznej w elixir-mint pozwala zdalnemu serwerowi HTTP na wyczerpanie CPU na hoście klienta i spowodowanie odmowy usługi. Funkcja parse_hex_prefix/2 w lib/mint/http1/parse.ex składa każdą cyfrę szesnastkową pola chunk-size odpowiedzi chunked do akumulatora o dowolnej precyzji bez ograniczenia liczby cyfr, co prowadzi do złożoności O(N^2). Ponieważ akumulator rośnie bez ograniczeń, mnożenie nie jest stałoczasowe, a jeden przebieg po N cyfrach kosztuje O(N^2). handle_data/2 prependuje conn.buffer i ponownie parsuje od początku przy każdej wiadomości socketu, więc serwer, który wysyła cyfry w małych pakietach, powoduje wielokrotne ponoszenie tego kosztu. Około 512 000 cyfr szesnastkowych kosztuje ponad dziesięć sekund CPU w jednym przebiegu. Problem dotyczy mint od 1.9.3 przed 1.10.0.

Ocena ryzyka

Ryzyko polega na możliwości przeprowadzenia ataku DoS na klienta przez zdalny serwer, co może prowadzić do znacznego spowolnienia lub zawieszenia aplikacji klienckiej. Atak może być łatwo wykorzystany przez złośliwy serwer.

Rekomendacja

Zaleca się aktualizację biblioteki mint do wersji 1.10.0 lub nowszej, która zawiera poprawkę ograniczającą liczbę cyfr. Należy również rozważyć ograniczenia po stronie klienta dla długości pól nagłówków.

Inne podatności w elixir-mint

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service. parse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response. This issue affects mint: from 1.9.3 before 1.10.0.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS