Katalog CVE

CVE-2026-93471

WysokieCVSS 8.7
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.44%

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

Streszczenie

Nieprawidłowa obsługa wysoce skompresowanych danych (amplifikacja danych) w esaml_binding w dropbox esaml pozwala nieuwierzytelnionemu atakującemu na wyczerpanie pamięci serwera i awarię maszyny wirtualnej Erlang poprzez spreparowany skompresowany SAMLResponse. Funkcja esaml_binding:decode_response/2 dekoduje base64 dostarczony przez atakującego SAMLResponse, rozpakowuje go za pomocą zlib:unzip/1 bez ograniczenia rozmiaru wyjściowego, a następnie konwertuje wynik do listy znaków przez binary_to_list/1 przed parsowaniem. Dzieje się to na endpointach SAML consume (ACS) i single-logout, które z założenia akceptują nieuwierzytelnione żądania, i odbywa się przed jakąkolwiek weryfikacją podpisu. Mały strumień deflate osiąga współczynnik kompresji bliski 1000 do 1, więc ciało żądania o rozmiarze dziesiątek kilobajtów rozpakowuje się do setek megabajtów, a następnie do kilku gigabajtów sterty listy, więc kilka żądań wyczerpuje pamięć i powoduje awarię węzła. Problem dotyczy esaml od wersji 0.1.0 wzwyż.

Ocena ryzyka

Nieuwierzytelniony atakujący może zdalnie spowodować odmowę usługi poprzez wyczerpanie pamięci, co prowadzi do niedostępności usługi uwierzytelniania SAML. Może to zablokować dostęp do aplikacji zależnych od tego dostawcy tożsamości.

Rekomendacja

Zaktualizuj bibliotekę esaml do wersji zawierającej poprawkę ograniczającą rozmiar rozpakowywanych danych. Do czasu aktualizacji rozważ wdrożenie limitów rozmiaru żądań na poziomie reverse proxy lub load balancera.

Inne podatności w esaml

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

Improper Handling of Highly Compressed Data (Data Amplification) in esaml_binding in dropbox esaml allows an unauthenticated attacker to exhaust server memory and crash the Erlang VM via a crafted compressed SAMLResponse. esaml_binding:decode_response/2 base64-decodes the attacker-supplied SAMLResponse, inflates it with zlib:unzip/1 with no bound on the output, then converts the result to a charlist with binary_to_list/1 before parsing. This runs on the SAML consume (ACS) and single-logout endpoints, which accept unauthenticated requests by design, and it runs before any signature check. A small deflate stream reaches a compression ratio near 1000 to 1, so a request body of tens of kilobytes inflates to hundreds of megabytes and then to several gigabytes of list heap, so a few requests exhaust memory and take the node down. This issue affects esaml: from 0.1.0 onward.

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