Skip to main content

ash_typescript CVE-2026-77856

| EUVDEUVD-2026-68924 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-09-01 EEF
8.2
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed ash_typescript RPC endpoint
  2. Delivery
    Craft requests with hundreds of unique fabricated field names targeting TypedStruct field
  3. Exploit
    Each request mints permanent BEAM atoms
  4. Execution
    Repeat until atom table ceiling reached
  5. Impact
    BEAM VM aborts, crashing application node

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The target application must be running ash_typescript between 0.11.0 and 0.17.x and must expose at least one RPC endpoint backed by an Ash resource that includes a TypedStruct-typed attribute with typescript_field_names/0 implemented, routing field selection through select_typed_struct_fields/4. No authentication is required (PR:N per CVSS vector). Exploitation is limited to the availability dimension - no data exfiltration or state modification is possible. Applications that do not expose TypedStruct-backed RPC endpoints, or that place those endpoints behind authentication, are not exploitable in the unauthenticated sense indicated by the vector. The CVSS 4.0 AT:P signal confirms that a specific deployment topology (the typed struct endpoint being reachable) must be present.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VA:H) scores 8.2, reflecting unauthenticated network exploitation with a high availability impact against the vulnerable system. The AT:P (Attack Requirements: Present) metric correctly encodes that the targeted application must expose an ash_typescript RPC endpoint with at least one TypedStruct type - a non-universal but entirely normal deployment configuration for any application built on this library. There is no EPSS score provided in the intelligence sources, and the vulnerability has not been added to the CISA Known Exploited Vulnerabilities catalog; real-world exploitation probability is therefore inferred as moderate given the low attack complexity and zero authentication requirement. The impact is pure availability: no data is leaked and no state is modified, but a complete VM abort takes down every Elixir process in the node - not just the RPC handler - making this operationally equivalent to a hard crash. Because ash_typescript targets Elixir developers building API-backed applications, the affected population is technically sophisticated but relatively small; nonetheless, any internet-exposed instance running an affected version is trivially deniable by an automated scanner sending unique field name strings. Defenders should treat upgrade to 0.18.0 as urgent for any public-facing deployment, and operators running older releases behind authentication layers have materially reduced exposure due to the AT:P signal in the vector.

Exploit ScenarioDerived

An unauthenticated attacker sends a high volume of RPC requests to an ash_typescript endpoint, each request specifying a TypedStruct field selection containing hundreds of globally unique, fabricated field name strings (e.g., randomly generated alphanumeric identifiers). Each unique string is converted to a permanent BEAM atom before field validation rejects the request; after sufficient requests, the atom table reaches its ceiling and the Erlang VM issues an abort, crashing the entire application node. No exploit code has been publicly identified, but the technique requires only standard HTTP tooling and knowledge of a valid typed struct endpoint path.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 01, 2026

Unauthenticated BEAM atom table exhaustion in ash_typescript 0.11.0-0.17.x allows a remote attacker to abort the Erlang VM and take down the entire application node by sending RPC requests carrying many distinct, unrecognized field names targeting a typed struct field selector. The root cause is resolve_typed_struct_field/2 calling String.to_atom/1 on unresolvable client input before any field-existence validation, permanently minting atoms that the BEAM runtime never reclaims. A vendor-released patch is available in 0.18.0; no public exploit code or CISA KEV listing exists at time of analysis.

RemediationAI

Upgrade ash_typescript to version 0.18.0 or later; this is the primary and complete fix as confirmed by the patch commit 0ab5c83a7df28d51a6de1fb9b859a142b2b12919 (https://github.com/ash-project/ash_typescript/commit/0ab5c83a7df28d51a6de1fb9b859a142b2b12919), which removes the String.to_atom/1 call from the unresolvable field path entirely. The patched version is referenced in the vendor advisory at https://github.com/ash-project/ash_typescript/security/advisories/GHSA-rj47-h936-4cxw. If immediate upgrade is not possible, compensating controls include placing the RPC endpoint behind authentication (eliminating the PR:N condition and significantly raising attacker cost), configuring a reverse proxy or WAF to enforce per-IP or per-session request rate limits on the affected RPC routes (slowing atom exhaustion, though not preventing it), and increasing the BEAM atom table limit via +t in vm.args as a temporary measure to delay but not prevent VM abort - note that this last option merely extends the attack window and is not a security control. Running the application with --erl '+t 2097152' doubles the default table size but does not fix the root cause and must be paired with a firewall-level rate limit to have meaningful protective value.

Affected VersionsENISA

ash_typescript 0.11.0 <0.18.0
ash_typescript 7c3d30896f2f9a54edea17e3787549776b1b288d <0ab5c83a7df28d51a6de1fb9b859a142b2b12919

Affected Packages

euvd ash_typescript fix: 0.18.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ash_typescript is an Elixir library (CPE: cpe:2.3:a:ash-project:ash_typescript) that bridges the Ash declarative resource framework with TypeScript clients via an RPC interface. The vulnerability lives in AshTypescript.Rpc.FieldProcessing.FieldSelector.resolve_typed_struct_field/2 (lib/ash_typescript/rpc/field_processing/field_selector.ex). The BEAM virtual machine (the runtime for Elixir/Erlang) stores atoms - compile-time identifiers - in a global, non-garbage-collected table with a fixed ceiling (default ~1,048,576 entries). The vulnerable code looked up a client-supplied string in a typed struct's reverse name map and, on a miss, converted the raw string to an atom via String.to_atom/1 rather than rejecting the unknown name. Because the atom table is write-once and never freed, an adversary can fill it by submitting requests with many unique field name strings, ultimately triggering a VM-level abort. CWE-770 (Allocation of Resources Without Limits or Throttling) precisely describes this class: no rate limit or quota gates the atom-minting path. The fix (commit 0ab5c83) replaces String.to_atom/1 with resolve_field_name/1, which returns a string for unknown names and lets downstream field-existence validation reject them without ever touching the atom table.

Know when Ash Typescript gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 8.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable with no auth or interaction required; sole impact is full VM availability loss with no scope change to other systems.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Technical POC Analysis

CWE-770 (Allocation of Resources Without Limits or Throttling), specifically unbounded interning of attacker-controlled strings into a resource that is never reclaimed: the BEAM atom table.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

ash_typescript versions 0.11.0 through 0.17.x contain an unauthenticated denial-of-service vulnerability (CVSS 8.2) that allows remote attackers to crash entire application nodes by exhausting the Erlang VM's atom table through malicious RPC requests. Any organization running affected versions faces complete application outages without requiring authentication, creating an immediate availability risk to production services.

Business Impact: High
Compensating Controls

Apply vendor patch. Until systems are upgraded, implement network segmentation to restrict RPC traffic to trusted internal networks only, and monitor Erlang VM runtime metrics for atom table exhaustion as a leading indicator of exploitation attempts.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Low
niche Elixir/Ash framework library, small ecosystem footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy