CVE-2026-42793
WysokieStreszczenie
Podatność w absinthe-graphql pozwala na nieautoryzowane zablokowanie usługi poprzez wyczerpanie tabeli atomów podczas parsowania kontrolowanego przez atakującego SDL GraphQL. Wiele implementacji Blueprint.Draft.convert/2 w modułach SDL wywołuje String.to_atom/1 na nazwach kontrolowanych przez atakującego, co prowadzi do wyczerpania zasobów.
Ocena ryzyka
Organizacje mogą doświadczyć awarii aplikacji, co prowadzi do przerwy w dostępności usług. Atakujący może wykorzystać tę podatność do zablokowania całego węzła Erlang VM.
Rekomendacja
Zaleca się ograniczenie lub throttling zasobów przy parsowaniu SDL GraphQL oraz monitorowanie i ograniczanie liczby unikalnych nazw przekazywanych do parsera. Warto również rozważyć wprowadzenie mechanizmów ochrony przed atakami DoS.
Inne podatności w absinthe-graphql
Oryginalny opis (angielski, źródło NVD)
Allocation of Resources Without Limits or Throttling vulnerability in absinthe-graphql absinthe allows unauthenticated denial of service via atom table exhaustion when parsing attacker-controlled GraphQL SDL. Multiple Blueprint.Draft.convert/2 implementations in Absinthe's SDL language modules call String.to_atom/1 on attacker-controlled names from parsed GraphQL SDL documents, including directive names, field names, type names, and argument names. Because atoms are never garbage-collected and the BEAM atom table has a fixed limit (default 1,048,576), each unique name permanently consumes one slot. An attacker can exhaust the atom table by submitting SDL documents containing enough unique names, causing the Erlang VM to abort with system_limit and taking down the entire node. Any application that passes attacker-controlled GraphQL SDL through Absinthe's parser is exposed — for example, a schema-upload endpoint, a federation gateway that ingests remote SDL, or any developer tool that

