CVE-2026-77856
Received Received - Intake

Resource Exhaustion in ash_typescript via Atom Table

Vulnerability report for CVE-2026-77856, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-01

Last updated on: 2026-09-01

Assigner: EEF

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 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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-01
Last Modified
2026-09-01
Generated
2026-09-01
AI Q&A
2026-09-01
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
ash-project ash_typescript From 0.11.0 (inc) to 0.18.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-770 The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is an Allocation of Resources Without Limits or Throttling issue in the ash_typescript library. It allows an unauthenticated attacker to crash the BEAM node by sending many distinct, invalid typed struct field names. The function resolve_typed_struct_field/2 converts these names to atoms using String.to_atom/1 before checking if they exist. Atoms are never garbage collected, so repeated requests grow the atom table until the VM aborts at its limit.

Detection Guidance

Monitor BEAM node performance for unusual atom table growth. Check for repeated invalid field name requests in logs of applications using ash_typescript 0.11.0 to 0.18.0. Use Erlang VM tools like observer or recon to inspect atom table size and memory usage.

Impact Analysis

This vulnerability can cause a denial-of-service by crashing the entire BEAM node. If your application uses ash_typescript versions 0.11.0 to 0.18.0 and exposes an AshTypescript RPC endpoint with resources backed by Ash.TypedStruct, an attacker could send requests with many unique invalid field names to exhaust the atom table and force the node to abort.

Mitigation Strategies

Upgrade ash_typescript to version 0.18.0 or later immediately. If upgrading is not possible, restrict access to exposed AshTypescript RPC endpoints to prevent unauthenticated requests. Monitor system logs for atom table exhaustion patterns.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-77856. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart