CVE-2026-39803
WysokieStreszczenie
W podatności CVE-2026-39803 w mtrudel bandit występuje problem z alokacją zasobów bez ograniczeń, co pozwala na zdalny atak typu denial of service poprzez wyczerpanie pamięci. Funkcja do_read_chunked_data!/5 nie ogranicza rozmiaru buforowanych danych, co prowadzi do przepełnienia pamięci.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do zdalnego zablokowania usługi, co może prowadzić do przestojów w działaniu aplikacji i utraty dostępności dla użytkowników.
Rekomendacja
Zaleca się aktualizację do najnowszej wersji mtrudel bandit, która naprawia tę podatność oraz wprowadzenie ograniczeń na rozmiar przychodzących żądań HTTP.
Inne podatności w mtrudel bandit
Zobacz wszystkie- CVE-2026-39806Wysokie
Podatność CVE-2026-39806 w mtrudel bandit umożliwia zdalny atak typu denial of service poprzez wyczerpanie procesów roboczych. Problem występuje w funkcji do_read_chunked_data!/5, która nie kończy się poprawnie w przypadku obecności pól trailer w żądaniach chunked.
- CVE-2026-39804Wysokie
Podatność CVE-2026-39804 w mtrudel bandit pozwala na zdalne wywołanie odmowy usługi poprzez wyczerpanie pamięci, gdy włączona jest kompresja permessage-deflate w WebSocket. Nieautoryzowany atakujący może wysłać specjalnie skonstruowany pakiet, co prowadzi do zabicia procesu z powodu braku pamięci.
Oryginalny opis (angielski, źródło NVD)
Allocation of Resources Without Limits or Throttling vulnerability in mtrudel bandit allows unauthenticated remote denial of service via memory exhaustion. The chunked clause of 'Elixir.Bandit.HTTP1.Socket':read_data/2 in lib/bandit/http1/socket.ex ignores the caller-supplied :length option when reading HTTP/1 chunked request bodies. Instead of capping the accumulated body at the configured limit (e.g. Plug.Parsers' default 8 MB), do_read_chunked_data!/5 buffers every received chunk into an iolist unconditionally and materializes the entire body as a single binary. The function always returns {:ok, body, ...}, so callers cannot interpose a 413 response. Because Plug.Parsers runs before routing and authentication in the standard Phoenix endpoint, an unauthenticated attacker needs no valid route or credentials. Sending a single Transfer-Encoding: chunked POST request with an arbitrarily large body to any path causes the BEAM process to exhaust available memory and be terminated by the

