CVE-2026-55733

Source
https://cve.org/CVERecord?id=CVE-2026-55733
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55733.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-55733
Aliases
Published
2026-08-01T18:46:12.113Z
Modified
2026-08-03T03:45:40.623034211Z
Severity
  • 6.9 (Medium) CVSS_V4 - CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H CVSS Calculator
Summary
Atom-table exhaustion denial of service in Guardian permissions AtomEncoding via unbounded atom creation
Details

Allocation of Resources Without Limits or Throttling in ueberauth guardian allows denial of service via unbounded atom creation from attacker-controlled binary input.

Guardian.Permissions.AtomEncoding encodes permission scopes by passing arbitrary binaries to String.toatom/1. When encode/3 in lib/guardian/permissions/atomencoding.ex is called with a list, each binary entry is handled by the encodevalue/3 binary clause, which calls String.toatom(value) with no allow-list check. The perm_set argument (the application's small, finite set of legitimate permission names) is discarded, so any external string flows straight into atom creation. This encoder is selected with use Guardian.Permissions, encoding: Guardian.Permissions.AtomEncoding and reached through the imported encode/3 entry point.

String.toatom/1 creates a brand-new atom for every previously unseen binary, atoms are never garbage collected, and the BEAM atom table is fixed at roughly 1,048,576 entries by default. An application that funnels attacker-influenced permission scopes (from a request body, a JWT claim, or other external input) into encode/3 therefore mints one permanent atom per distinct value. A modest stream of varied, unauthenticated input permanently consumes the atom table and crashes the BEAM node with systemlimit, taking down every application running on it.

The default encoder is Guardian.Permissions.BitwiseEncoding, which is not affected.

This issue affects guardian: from 2.0.0 before 2.4.1.

Database specific
{
    "cwe_ids": [
        "CWE-770"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55733.json",
    "cna_assigner": "EEF",
    "unresolved_ranges": [
        {
            "source": "AFFECTED_FIELD",
            "extracted_events": [
                {
                    "introduced": "b7a6128ca4d0ffb7f7df5219dd982304ff9d6802"
                },
                {
                    "fixed": "9cd268557846aa4c3ad53566c08f2c190ee5513f"
                }
            ]
        }
    ]
}
References

Affected packages

Git / github.com/ueberauth/guardian

Affected ranges

Type
GIT
Repo
https://github.com/ueberauth/guardian
Events
Database specific
{
    "source": [
        "DESCRIPTION",
        "REFERENCES"
    ],
    "extracted_events": [
        {
            "introduced": "2.0.0"
        },
        {
            "fixed": "2.4.1"
        }
    ]
}

Affected versions

2.*
2.1.0
v2.*
v2.0.0
v2.1.1
v2.1.2
v2.2.1
v2.2.2
v2.2.3
v2.2.4
v2.3.0
v2.3.1
v2.3.2
v2.4.0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55733.json"