CVE-2026-74837: CWE-770 Allocation of Resources Without Limits or Throttling in ash-project ash_typescript
Description
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.
CVSS v4.0
Score 8.7high
Affected software
ash-project
ash_typescript
ash-project
ash_typescript
cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in ash_typescript involves the function AshTypescript.FieldFormatter.convert_to_field_atom/2, which converts client-supplied RPC field names into atoms using String.to_atom/1 if no existing atom matches. Since atoms in the BEAM VM are permanent and not garbage collected, an attacker can exhaust the atom table by sending many unique field names, causing the node to abort. There is no allowlist, length bound, or rate limiting on these field names. Additionally, field names longer than 255 characters cause an uncaught SystemLimitError. This affects versions from 0.1.0 before 0.18.0.
Potential Impact
An unauthenticated attacker can cause a denial of service by exhausting the BEAM atom table, leading to node abortion and service disruption. The vulnerability does not require privileges or user interaction and can be triggered remotely via RPC calls with crafted field names.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, users should consider implementing external rate limiting or input validation to restrict RPC field names and prevent atom table exhaustion. Monitoring for unusually high numbers of unique RPC field names may help detect exploitation attempts.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-08-30T17:30:01.398Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a963a79acd9273b491bc8bd
Added to database: 09/01/2026, 02:37:45 UTC
Last enriched: 09/07/2026, 14:45:34 UTC
Last updated: 10/14/2026, 18:48:24 UTC
Views: 80
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.