Skip to main content
EPSS 0.3%top 74%

CVE-2026-55734: CWE-770 Allocation of Resources Without Limits or Throttling in ueberauth guardian

0
Medium
VulnerabilityCVE-2026-55734cvecve-2026-55734cwe-770
Published: 08/01/2026 (08/01/2026, 18:46:24 UTC)
Source: CVE Database V5
Vendor/Project: ueberauth
Product: guardian

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

Score 6.9medium

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vuln. Confidentiality
None
Vuln. Integrity
None
Vuln. Availability
High
Subsq. Confidentiality
None
Subsq. Integrity
None
Subsq. Availability
High
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

Affected software

ueberauth

guardian

Affected versions
>=2.0.0 <2.4.1

ueberauth

guardian

guardian
pkg:hex/guardian
Affected versions
>=2.0.0 <2.4.1
GitHub Actionsmore threats →cve
ueberauth/guardian
pkg:github/ueberauth/guardian
CPE configurations
cpe:2.3:a:ueberauth:guardian:*:*:*:*:*:*:*:*

Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.

AI-Powered Analysis

Machine-generated threat intelligence

AILast updated: 08/09/2026, 14:20:23 UTC

Technical Analysis

The vulnerability in ueberauth guardian's Guardian.Permissions module arises from the encode_permissions!/1 function converting each key of a supplied map into an atom via String.to_atom(to_string(k)) before any validation. When a key has an integer value, the function encodes it directly without validating against the configured permission set, allowing an attacker to create an unbounded number of unique atoms. Since atoms are permanent in the BEAM VM and the atom table has a fixed size (approximately 1,048,576 entries), this can lead to atom table exhaustion and crash the BEAM node, causing denial of service. The decode_permissions/1 function is not affected as it skips keys not in the permission set. The affected versions are >=2.0.0 and <2.4.1.

Potential Impact

An attacker able to influence the permission map passed to encode_permissions!/1 can exhaust the BEAM atom table by creating many unique atoms, leading to a denial of service via crash of the BEAM node and all services running on it. This impacts availability but does not involve privilege escalation or data confidentiality/integrity issues.

Mitigation Recommendations

Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid passing untrusted or attacker-controlled data to the encode_permissions!/1 function or related permission encoding routines. Consider implementing input validation or throttling on permission map keys to prevent uncontrolled atom creation.

Pro Console: star threats, build custom feeds, automate alerts via Slack, email & webhooks.Upgrade to Pro

Technical Details

Data Version
5.2
Assigner Short Name
EEF
Date Reserved
2026-06-17T10:44:34.365Z
Cvss Version
4.0
State
PUBLISHED

Threat ID: 6a6e3f8dbf32cb7a34232d29

Added to database: 08/01/2026, 18:48:45 UTC

Last enriched: 08/09/2026, 14:20:23 UTC

Last updated: 09/14/2026, 10:01:32 UTC

Views: 60

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

Need more coverage?

Upgrade to Pro Console for AI refresh and higher limits.

For incident response and remediation, OffSeq services can help resolve threats faster.

Latest Threats

Breach by OffSeqOFFSEQFRIENDS — 25% OFF

Check if your credentials are on the dark web

Instant breach scanning across billions of leaked records. Free tier available.

Scan now
OffSeq TrainingCredly Certified

Lead Pen Test Professional

Technical5-day eLearningPECB Accredited
View courses