CVE-2026-53426
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 — wyżej niż 3% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece MDEx dla Elixira/Erlanga pozwala na wyczerpanie tablicy atomów poprzez przetworzenie specjalnie spreparowanego dokumentu JSON. Funkcja json_to_node/1 tworzy nowe atomy dla każdej unikalnej wartości node_type, które nie są usuwane przez garbage collector, co prowadzi do awarii całej maszyny wirtualnej BEAM.
Ocena ryzyka
Atakujący bez uwierzytelnienia może wysłać złośliwy dokument JSON, który spowoduje denial-of-service (DoS) całego węzła Erlanga, zatrzymując wszystkie procesy na nim działające. Dotyczy to każdej aplikacji przetwarzającej niezaufane dane przez MDEx.parse_document/2 ze źródłem {:json, json}.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę mdex do wersji 0.13.2 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy ograniczyć dostęp do funkcji MDEx.parse_document/2 dla niezaufanych danych lub zastosować walidację rozmiaru i struktury dokumentów JSON.
Oryginalny opis (angielski, źródło NVD)
Allocation of Resources Without Limits or Throttling vulnerability in leandrocp MDEx allows Excessive Allocation. MDEx.parse_document/2 accepts a {:json, json} source. In lib/mdex.ex, the private json_to_node/1 function passes the attacker-controlled node_type value to Module.concat/1, which calls String.to_atom/1 and interns a brand-new atom for every distinct value. Atoms are never garbage collected on the BEAM, so a crafted JSON document carrying a unique node_type at each (deeply nested) node mints one permanent atom per node. A single document can intern hundreds of thousands of atoms, and a large enough document exhausts the default atom table (around 1,048,576 atoms) and aborts the entire Erlang VM, taking down every process on the node. Any application that passes untrusted input to the {:json, ...} source of MDEx.parse_document is exposed to an unauthenticated denial-of-service. This issue affects mdex from 0.4.3 before 0.13.2.

