Allocation of Resources Without Limits or Throttling vulnerability in ash-project ash_typescript allows an unauthenticated attacker to exhaust the BEAM atom table and abort the node via client-supplied typed struct field names.
resolve_typed_struct_field/2 in lib/ash_typescript/rpc/field_processing/field_selector.ex looks a client-supplied field name up in the typed struct's reverse map and, when it finds no match, falls back to String.to_atom/1. Because this runs before any field-existence check, an unresolvable name mints a permanent atom rather than being rejected as unknown. Atoms are never garbage collected, so a request carrying many distinct names on a typed struct field grows the atom table until the VM aborts at its limit.
This issue affects ash_typescript: from 0.11.0 before 0.18.0.
The application exposes an AshTypescript RPC endpoint over HTTP and has at least one resource field backed by an Ash.TypedStruct, so that client-supplied names reach resolve_typed_struct_field/2.
{
"cwe_ids": [
"CWE-770"
],
"capec_ids": [
"CAPEC-130"
],
"cpe_ids": [
"cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*"
]
}