Summary
CVE-2026-74837 is a high-severity denial-of-service vulnerability in ash_typescript, an Elixir/Ash Framework library that generates TypeScript RPC clients. An unauthenticated remote attacker can supply arbitrary, malicious field names in RPC requests, causing the application to convert them into BEAM atoms without validation. Because atoms are never garbage-collected by the Erlang VM, repeated exploitation exhausts the atom table and crashes the entire BEAM node, taking down every application running on it.
Technical details
- Root cause:
AshTypescript.FieldFormatter.convert_to_field_atom/2converts client-supplied field name strings into atoms usingString.to_atom/1without checking them against an allowlist of known/expected atoms. - Contributing factors:
parse_input_field/2falls back to returning plain strings for unresolved input, which are subsequently converted into permanent atoms, andAshTypescript.Rpc.FieldProcessing.FieldSelectorprocesses every incoming field name before any validation occurs — there are no length checks, rate limits, or allowlists anywhere in the path. - Trigger conditions: No authentication or special privileges are required; an attacker simply sends RPC requests containing unique, arbitrary field names to any exposed AshTypescript RPC endpoint.
- Attack vector: Network-based (AV:N), low attack complexity, no user interaction required.
- Impact: Each unique attacker-supplied field name permanently consumes space in the BEAM VM’s atom table (limited to roughly 1,048,576 entries by default). Once the table is exhausted, the entire BEAM node aborts, causing a full denial of service for the application and any other services co-located on that node. Recovery requires a node restart.
Affected software
- ash_typescript (ash-project), versions 0.1.0 through 0.17.x (all versions prior to 0.18.0)
- Distributed via hex.pm and GitHub
Severity
- CVSS v4.0 Base Score: 8.7 (High)
- 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 - No confidentiality or integrity impact; severe availability impact only.
Mitigation and recommended actions
- Immediate: Upgrade ash_typescript to version 0.18.0 or later, which adds validation to prevent unbounded, unauthenticated atom creation from user-supplied RPC field names.
- If immediate patching is not possible: No effective application-level workaround exists for versions prior to 0.18.0. Security teams should consider restricting or monitoring access to exposed AshTypescript RPC endpoints (e.g., via network-layer access controls or WAF rules limiting unusual/high-cardinality field-name parameters) as a temporary compensating control until the upgrade can be applied, and should plan for prompt node restarts and monitoring of BEAM atom table utilization as an interim detection measure.

