Skip to main content

ueberauth Guardian CVE-2026-55733

| EUVDEUVD-2026-51916 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-01 EEF
6.9
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Discover network endpoint accepting JWT or permission scope input
  2. Delivery
    Craft requests carrying unique novel permission scope strings
  3. Exploit
    Submit high-volume stream through AtomEncoding-configured Guardian
  4. Execution
    String.to_atom/1 mints permanent BEAM atom per novel string
  5. Persist
    Atom table exhausted at ~1,048,576 entries
  6. Impact
    system_limit crash terminates entire BEAM node

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires two co-present conditions: (1) the target application must explicitly opt into Guardian.Permissions.AtomEncoding via use Guardian.Permissions, encoding: Guardian.Permissions.AtomEncoding - a non-default, code-level configuration choice absent from standard Guardian installations; and (2) externally controlled input (JWT permission scope claims, HTTP request body fields, or any other attacker-influenced data) must flow into Guardian.Permissions.encode/3 without prior validation against the known permission set. The default Guardian.Permissions.BitwiseEncoding is completely unaffected. Based on the PR:N metric in the CVSS 4.0 vector, no authentication is required; any endpoint processing incoming tokens and routing them through encode/3 is exploitable by unauthenticated callers. The primary limiting factor is the non-default encoder configuration, which substantially narrows the exposed population to applications that deliberately opted in to AtomEncoding.

Impact

The vendor-assigned CVSS 4.0 score of 6.9 with AT:P (Attack Requirements: Present) correctly reflects the non-default configuration prerequisite. However, the provided vector's AV:L (Local) appears inconsistent with the described attack surface - JWT claims and HTTP request bodies are network-delivered inputs, suggesting AV:N is the more accurate attack vector; this metric discrepancy should be verified with the vendor. AT:P appropriately captures the opt-in AtomEncoding configuration constraint. No EPSS score or CISA KEV listing is present in the available data, so exploitation probability cannot be quantified; however, the attack is conceptually trivial to automate once the attack surface is understood. Real-world priority is moderate-to-high for the affected subset: the vast majority of Guardian deployments use BitwiseEncoding and are entirely unexposed, significantly narrowing the vulnerable population. For applications that did opt into AtomEncoding and accept external permission scopes, this is a high-priority, availability-critical issue with no authentication barrier, no user-interaction requirement, and a broad blast radius because a BEAM crash terminates all co-resident applications simultaneously.

Exploit ScenarioDerived

An unauthenticated attacker targets a Phoenix application endpoint that processes incoming JWTs with permission scope claims. The attacker submits a continuous stream of requests, each JWT carrying a unique, previously unseen scope string. Because the application uses AtomEncoding, every distinct string permanently consumes one BEAM atom slot; after roughly one million unique submissions - achievable with a trivial script within minutes on a reasonable network - the atom table overflows, the BEAM raises system_limit, and the entire node crashes, taking down all co-hosted applications.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 01, 2026

Guardian's AtomEncoding permission encoder (versions 2.0.0-2.4.1) crashes the BEAM runtime by converting attacker-supplied binary strings directly to permanent atoms via String.to_atom/1, completely bypassing the application's permission allow-list. The BEAM atom table is fixed at approximately 1,048,576 non-garbage-collected entries; exhausting it raises a system_limit error that terminates the entire Erlang node and every application co-hosted on it. This path is only reachable when AtomEncoding is explicitly opted into; no CISA KEV listing or public exploit exists, but the attack is trivially automatable against any network endpoint that routes external permission scope values through encode/3.

RemediationAI

Upgrade ueberauth Guardian to version 2.4.1 or later, which replaces the unsafe String.to_atom(value) call with String.to_existing_atom(value) and validates each binary against the application's perm_set allow-list before conversion (patch commit: https://github.com/ueberauth/guardian/commit/9cd268557846aa4c3ad53566c08f2c190ee5513f; vendor advisory: https://github.com/ueberauth/guardian/security/advisories/GHSA-fjr5-7xrc-hmpj). If an immediate upgrade is not feasible, switch to the default Guardian.Permissions.BitwiseEncoding by removing the encoding: Guardian.Permissions.AtomEncoding option - this is a one-line configuration change with no functional security trade-off, as BitwiseEncoding is the recommended production encoder. As a secondary compensating control, strict input validation at the API boundary that rejects permission scope values not present in the known permission set will prevent novel strings from reaching encode/3; this must be exhaustive and applied before Guardian processes the input to be effective.

Affected VersionsENISA

Guardian b7a6128ca4d0ffb7f7df5219dd982304ff9d6802 <9cd268557846aa4c3ad53566c08f2c190ee5513f
Guardian 2.0.0 <2.4.1

Affected Packages

euvd guardian fix: 2.4.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Guardian is an Elixir/Phoenix authentication library running on the BEAM (Erlang Virtual Machine). Elixir atoms are interned symbols stored in a global, fixed-size table (default limit: 1,048,576 entries) that the garbage collector never reclaims - making unbounded atom creation a well-known BEAM denial-of-service primitive. CWE-770 (Allocation of Resources Without Limits or Throttling) precisely characterizes the root cause: the encode_value/3 binary clause in lib/guardian/permissions/atom_encoding.ex called String.to_atom/1 on any external binary without consulting the perm_set allow-list, permanently minting one atom per novel input string. The vulnerable encoder is opt-in (use Guardian.Permissions, encoding: Guardian.Permissions.AtomEncoding); the default Guardian.Permissions.BitwiseEncoding encodes permissions as bitmasks and is entirely unaffected. CPE: cpe:2.3:a:ueberauth:guardian:*:*:*:*:*:*:*:* covering versions 2.0.0 through 2.4.1.

Know when Guardian gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 6.9 MEDIUM
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
vuln.today AI 6.8 MEDIUM

AV:N for network-delivered JWT/HTTP input; AC:H for the non-default AtomEncoding config prerequisite; S:C because BEAM crash terminates all co-resident applications.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
High

DescriptionCVE.org

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.to_atom/1. When encode/3 in lib/guardian/permissions/atom_encoding.ex is called with a list, each binary entry is handled by the encode_value/3 binary clause, which calls String.to_atom(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.to_atom/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 system_limit, 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.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular auth library in niche Elixir/Phoenix ecosystem
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-34107 CRITICAL POC
9.3 Jul 01

OS command injection in Guardian language-system lets unauthenticated remote attackers run arbitrary shell commands by i

CVE-2026-34106 CRITICAL POC
9.3 Jul 01

Remote code execution in Guardian language-system allows unauthenticated attackers to run arbitrary OS commands by injec

CVE-2026-34099 CRITICAL POC
9.3 Jul 01

Unauthenticated SQL injection in Guardian Language System lets remote attackers manipulate the backend database by injec

CVE-2026-34105 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian Language-System allows a network-accessible authenticated attacker to extract the

CVE-2026-34104 HIGH POC
8.7 Jul 01

SQL injection in Guardian Language-System's designer.php (line 124) allows attackers to extract, modify, or destroy the

CVE-2026-34103 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian language-system's subtitles.php exposes full database contents to low-privileged a

CVE-2026-34102 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian Language-System exposes the full database to low-privileged authenticated attacker

CVE-2026-34101 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian language-system's text_file.php exposes the full database to extraction via a triv

CVE-2026-34100 HIGH POC
8.7 Jul 01

SQL injection in Guardian language-system's media.php endpoint allows low-privilege authenticated attackers to extract t

CVE-2020-7049 HIGH POC
7.3 Jun 30

Nozomi Networks OS before 19.0.4 allows /#/network?tab=network_node_list.html CSV Injection. Rated high severity (CVSS 7

CVE-2020-15307 MEDIUM POC
6.1 Jun 30

Nozomi Guardian before 19.0.4 allows attackers to achieve stored XSS (in the web front end) by leveraging the ability to

CVE-2023-29245 CRITICAL
9.2 Sep 19

A SQL Injection vulnerability in Nozomi Networks Guardian and CMC, due to improper input validation in certain fields us

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy