CVE-2026-74837
nicheUnauthenticated DoS in ash_typescript via BEAM atom table exhaustion
CVE-2026-74837 is an unauthenticated resource-exhaustion vulnerability (CWE-770) in the ash_typescript Elixir package that lets a remote attacker exhaust the BEAM atom table and abort the entire VM node, producing a high-availability-impact denial of service (CVSS 4.0 8.7) with no confidentiality or integrity impact. The flaw is reached through AshTypescript.Rpc.FieldProcessing.FieldSelector, which resolves every client-supplied RPC field name before checking that the field exists, after which AshTypescript.FieldFormatter.convert_to_field_atom/2 mints a new atom via String.to_atom/1 when none exists, with no allowlist, length bound, or rate limit; because BEAM atoms are never garbage collected, an attacker can submit large numbers of unique field names to permanently consume the atom table until the node aborts. A single field name longer than 255 characters additionally raises an uncaught SystemLimitError, providing a second failure path. Any application using ash_typescript from 0.1.0 before 0.18.0 to expose its RPC layer is affected, and unauthenticated endpoints are directly reachable per the CVSS vector (no privileges or user interaction required). No public proof of concept is known, the issue is not in CISA KEV, and EPSS estimates only a 0.3% probability of exploitation within 30 days, so no exploitation has been reported.
What to do: Upgrade ash_typescript to 0.18.0 or later. As interim mitigation, validate or allowlist RPC field names, cap field-name length below 255 characters, and rate-limit or require authentication on the RPC endpoint, while monitoring BEAM atom table usage (e.g., :erlang.system_info(:atom_count)) for abnormal growth. Teams should confirm whether their application exposes the ash_typescript RPC controller to unauthenticated internet traffic.
| ash-project ash_typescript | from 0.1.0 before 0.18.0 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 RPC field names. AshTypescript.FieldFormatter.convert_to_field_atom/2 in lib/ash_typescript/field_formatter.ex converts a client-supplied field name to an atom with String.to_atom/1 when no matching atom already exists. It delegates first to parse_input_field/2, which resolves the name with String.to_existing_atom/1 and falls back to returning the plain string; convert_to_field_atom/2 then mints an atom from that string rather than treating the name as unknown. RPC field selection reaches it for every requested field name through AshTypescript.Rpc.FieldProcessing.FieldSelector, which resolves each name before checking that the field exists, with no allowlist, length bound, or rate limit. Atoms are never garbage collected, so each distinct name mints a permanent one and the VM aborts once the atom table limit is reached. A field name over 255 characters additionally raises an uncaught SystemLimitError. This issue affects ash_typescript: from 0.1.0 before 0.18.0.
- Weakness
- CWE-770
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.