Description
Allocation of Resources Without Limits or Throttling vulnerability in DivvyPayHQ absinthe_federation allows an unauthenticated remote attacker to abort the Erlang VM via crafted _entities representation keys. Every key of every object in the representations argument of the federation-mandated _entities field is converted with String.to_atom/1 by convert_key/2 in lib/absinthe/federation/schema/entities_field.ex. representations is typed as the open-ended _Any scalar, so its keys bypass schema coercion and the attacker names them freely. Atoms are never garbage collected and the BEAM atom table is hard-capped (about 1,048,576 entries by default), so one request carrying tens of thousands of unique keys creates that many permanent atoms and a handful of such requests exhausts the table and aborts the node. The impact is confined to availability: no data is read or altered, and recovery requires restarting the application. This issue affects absinthe_federation: from 0.1.0 before 0.9.3.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
DivvyPayHQ absinthe_federation
Default version status: unaffected
0.1.0 to < 0.9.3affected
pkg:hex/absinthe_federationDivvyPayHQ absinthe_federation
Default version status: unaffected
640a234a26b2d6fe5d9d21e00e5f4fce5645c0bf to < c3838cda2a7f65c4893291668c223b0d6acf4516affected
pkg:github/DivvyPayHQ/absinthe_federation