Guardian.revoke/3 acts on unverified token claims, allowing forged-token session revocation
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
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
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
- 2026-10-02 Threatist record created from CVE-2026-55735
References
More ueberauth Guardian vulnerabilities
- 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