Read the docs
TI-2026-40233 Aliases CVE-2026-55735

Guardian.revoke/3 acts on unverified token claims, allowing forged-token session revocation

Priority HIGH 69CWE-347Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
Present
Impact type
Security bypass
Confidentiality · integrity · availability
None · None · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-347.

Summary

Improper Verification of Cryptographic Signature in ueberauth guardian allows an unauthenticated attacker to revoke a victim's session with a forged token. Guardian.revoke/3 in lib/guardian.ex decodes the supplied token with peek/1, which performs no signature verification (it only base64-decodes the JWT header and payload). The resulting unverified claims are forwarded directly to the configured token module's revoke callback and the implementation's on_revoke callback, a state-mutating sink. The sibling operations refresh/2 and exchange/4 both call decode_and_verify first, so the signature is checked before anything acts on the claims; revoke/3 is the only state-mutating path that acts on claims without verifying the signature. An attacker who knows or guesses a victim's identifying claim values (jti, sub) can forge a JWT carrying those claims, sign it with an arbitrary key, and submit it to any endpoint that funnels a caller-supplied token into Guardian.revoke/3 (the standard logout / session-revocation pattern). When the token module mutates state keyed by the claims (whitelist deletion or blacklist insertion, for example a GuardianDb-style store), the victim's legitimate session is evicted. This is an unauthenticated session-revocation denial of service; the attacker never needs the signing secret. This issue affects guardian: from 1.0.0 before 2.4.1.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.0046 40th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed guardian (ueberauth): 2.4.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ueberauthguardian1.0.0 to before 2.4.12.4.1Patch availableCNA
  • guardian Vendorueberauth Affected 1.0.0 to before 2.4.1 Fixed in 2.4.1 Patch available CNA

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:ueberauth:guardian:*:*:*:*:*:*:*:*1.0.0 to before 2.4.1Vulnerableueberauth
  • cpe:2.3:a:ueberauth:guardian:*:*:*:*:*:*:*:* Versions 1.0.0 to before 2.4.1 Vulnerable ·ueberauth

Remediation

  • Fix · CNA guardian (ueberauth) Fixed in 2.4.1

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    ueberauth guardian 2.4.1

    4 records Highest priority Priority HIGH 1 HIGH, 3 MEDIUM

    Other records, highest priority first

    • TI-2026-40232 guardian atom exhaustion in Guardian.Permissions.encode_permissions!/1Priority MEDIUM 64
    • TI-2026-40231 Atom-table exhaustion denial of service in Guardian permissions AtomEncoding via unbounded atom creationPriority MEDIUM 64
    • TI-2026-39667 Atom-table exhaustion denial of service in Guardian via unbounded atom creation from binary keysPriority MEDIUM 64

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-55735

References

  • TI-2026-40232 guardian atom exhaustion in Guardian.Permissions.encode_permissions!/1 CVSS 4.0MEDIUM 6.9
  • TI-2026-40231 Atom-table exhaustion denial of service in Guardian permissions AtomEncoding via unbounded atom creation CVSS 4.0MEDIUM 6.9
  • TI-2026-39667 Atom-table exhaustion denial of service in Guardian via unbounded atom creation from binary keys CVSS 4.0MEDIUM 6.9

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences