CVE-2026-55735: CWE-347 Improper Verification of Cryptographic Signature in ueberauth guardian
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.
AI Analysis
Technical Summary
The vulnerability in ueberauth guardian (versions from 1.0.0 up to but not including 2.4.1) is due to the revoke/3 function in lib/guardian.ex using peek/1 to decode JWT tokens without verifying their cryptographic signatures. This allows an attacker who can guess or know victim identifying claims (such as jti or sub) to forge a JWT with arbitrary signatures and submit it to endpoints that call revoke/3. Since revoke/3 forwards unverified claims to token module callbacks that mutate session state (e.g., whitelist deletion or blacklist insertion), the attacker can revoke the victim's session without authentication, causing a denial of service. Other related functions like refresh/2 and exchange/4 do verify signatures before acting, making revoke/3 the sole vulnerable state-mutating path.
Potential Impact
An unauthenticated attacker can revoke a victim's session by submitting a forged token with guessed identifying claims, causing a denial of service by evicting legitimate sessions. The attacker does not require the signing secret, making the attack feasible without authentication. This impacts session integrity and availability for affected versions of ueberauth guardian.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid using the revoke/3 function with caller-supplied tokens or implement additional signature verification before calling revoke/3 to prevent unauthenticated session revocation.
CVE-2026-55735: CWE-347 Improper Verification of Cryptographic Signature in ueberauth guardian
Description
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.
CVSS v4.0
Score 8.2high
Affected software
ueberauth
guardian
ueberauth
guardian
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.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in ueberauth guardian (versions from 1.0.0 up to but not including 2.4.1) is due to the revoke/3 function in lib/guardian.ex using peek/1 to decode JWT tokens without verifying their cryptographic signatures. This allows an attacker who can guess or know victim identifying claims (such as jti or sub) to forge a JWT with arbitrary signatures and submit it to endpoints that call revoke/3. Since revoke/3 forwards unverified claims to token module callbacks that mutate session state (e.g., whitelist deletion or blacklist insertion), the attacker can revoke the victim's session without authentication, causing a denial of service. Other related functions like refresh/2 and exchange/4 do verify signatures before acting, making revoke/3 the sole vulnerable state-mutating path.
Potential Impact
An unauthenticated attacker can revoke a victim's session by submitting a forged token with guessed identifying claims, causing a denial of service by evicting legitimate sessions. The attacker does not require the signing secret, making the attack feasible without authentication. This impacts session integrity and availability for affected versions of ueberauth guardian.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid using the revoke/3 function with caller-supplied tokens or implement additional signature verification before calling revoke/3 to prevent unauthenticated session revocation.
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: 6a6e3f8dbf32cb7a34232d2f
Added to database: 08/01/2026, 18:48:45 UTC
Last enriched: 08/09/2026, 14:16:50 UTC
Last updated: 09/14/2026, 22:01:35 UTC
Views: 67
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
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
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.