CVE-2026-55734
Received Received - Intake

Atom Table Exhaustion in Guardian Permissions

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

Publication date: 2026-08-01

Last updated on: 2026-08-01

Assigner: EEF

Description

Allocation of Resources Without Limits or Throttling vulnerability in ueberauth guardian (Guardian.Permissions module) allows a denial of service via BEAM atom-table exhaustion. This vulnerability is associated with program file lib/guardian/permissions.ex and program routines 'Elixir.Guardian.Permissions':encode_permissions!/1, 'Elixir.Guardian.Permissions':encode_permissions_into_claims!/2, 'Elixir.Guardian.Permissions':do_encode_permissions!/2. The Guardian.Permissions mixin installs a public encode_permissions!/1 function on every module that does use Guardian.Permissions. For each key of the supplied map, encode_permissions!/1 calls String.to_atom(to_string(k)) before any validation runs. The integer-value clause of do_encode_permissions!/2 then short-circuits straight to encoding without validating the key against the configured permission set, so a key with an integer value is interned as a fresh atom with no exception raised. Atoms are never garbage collected and the BEAM atom table is a fixed-size resource (default roughly 1,048,576 entries), so each unique attacker-chosen key permanently consumes one slot. An attacker who can influence a permission map that reaches encode_permissions!/1 (for example a permissions map read from a request body and passed into token issuance via encode_permissions_into_claims!/2) can mint an unbounded number of atoms and exhaust the atom table, crashing the entire BEAM node and every service running on it. The sibling decode_permissions/1 is not affected because it skips keys absent from the configured permission set. This issue affects guardian: from 2.0.0 before 2.4.1.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

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

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
guardian guardian From 2.0.0 (inc) to 2.4.1 (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 is an Allocation of Resources Without Limits or Throttling vulnerability in the ueberauth guardian library. It affects the Guardian.Permissions module and allows a denial of service through BEAM atom-table exhaustion. Attackers can create an unbounded number of atoms by passing integer keys in a permission map, which permanently consume atom table slots since atoms are never garbage collected. This crashes the entire BEAM node and all services running on it.

Detection Guidance

Monitor BEAM node atom table usage with Erlang VM commands like 'erlang:system_info(atom_count)' in an Elixir console. Check for rapid atom creation by logging or tracing calls to Guardian.Permissions.encode_permissions!/1 with unique keys.

Impact Analysis

If exploited, this vulnerability can crash your entire BEAM node and all services running on it by exhausting the atom table. This leads to a denial of service, making your applications unavailable. The impact is severe as it affects the core runtime environment of Elixir/Erlang systems.

Compliance Impact

This vulnerability could lead to denial of service by exhausting BEAM atom-table resources, crashing services. Such outages may violate compliance requirements for availability in GDPR (Article 32) and HIPAA (Security Rule Β§164.308(a)(7)), which mandate continuous access to protected data.

Mitigation Strategies

Upgrade guardian to version 2.4.1 or later. Validate and sanitize all permission map keys before passing them to encode_permissions!/1. Restrict user input that influences permission maps to prevent atom exhaustion.

Chat Assistant

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

EPSS Chart