CVE-2026-55734 Details
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.
A denial-of-service vulnerability has been identified in the Ueberauth Guardian library, specifically within the Guardian.Permissions module. This issue arises from the 'encode_permissions!/1' function, which is automatically included in any module that uses Guardian.Permissions'. The vulnerability allows for unbounded atom creation, leading to exhaustion of the BEAM atom table, a fixed-size resource that, once filled, crashes the BEAM node and all services running on it. The problem originates from the 'encode_permissions!/1' function, which converts permission map keys into atoms before validating them. Integer-valued keys bypass validation entirely, allowing attackers to manipulate permission maps and create a large number of unique atoms. Since atoms are not garbage collected, this exploitation can cause significant disruption, especially in applications that use Guardian for permission management and token issuance.
Users can upgrade to Guardian version 2.4.1 or later, where this vulnerability has been patched. If an immediate upgrade is not possible, permission maps should be filtered to exclude unknown keys before being passed to 'encode_permissions!/1' or 'encode_permissions_into_claims!/2'.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed Aug 3, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/ueberauth/guardian/security/advisories/GHSA-9qx2-v587-q3gg | CISA-ADP | ExploitPatchVendor Advisory |
| https://cna.erlef.org/cves/CVE-2026-55734.html | EEF | Third Party Advisory |
| https://github.com/ueberauth/guardian/commit/8d4efbfc352d30f5fcfc75a4d69a795b0e472724 | EEF | Patch |
| https://github.com/ueberauth/guardian/security/advisories/GHSA-9qx2-v587-q3gg | EEF | ExploitPatchVendor Advisory |
| https://osv.dev/vulnerability/EEF-CVE-2026-55734 | EEF | Third Party Advisory |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-770 | Allocation of Resources Without Limits or Throttling | EEF |
Affected Products
| Product | Versions |
|---|---|
| ueberauth guardian | >= 2.0.0, < 2.4.1 |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Aug 6, 2026 | Initial Analysis | [email protected] |
| Aug 3, 2026 | CVE Modified | CISA-ADP |
| Aug 1, 2026 | New CVE Received | EEF |