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.
Published: 2026-08-01
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Guardian.revoke/3 in the ueberauth Guardian library ignores cryptographic signature verification when decoding a supplied token. The unverified claims are passed directly to the token module’s revoke logic, allowing an attacker to craft a forged JWT containing a victim’s identifying claims (such as jti or sub), sign it with any key, and invoke the revocation endpoint. The victim’s legitimate session is then removed, resulting in an unauthenticated denial‑of‑service attack on session continuity. This weakness is a classic Improper Verification of Cryptographic Signature (CWE‑347).

Affected Systems

The vulnerability applies to the Guardian authentication library from ueberauth, affecting all releases from version 1.0.0 up to but not including 2.4.1. The fix was incorporated in Guardian 2.4.1 and newer releases.

Risk and Exploitability

The CVSS score of 8.2 denotes high severity, while the EPSS score of less than 1% indicates a very low current exploitation likelihood. The vulnerability is not listed in the CISA KEV catalog. An attacker can trigger the flaw by sending an unauthenticated HTTP request that carries a forged token to any endpoint that forwards the caller‑supplied token into Guardian.revoke/3, such as the standard logout route. Because token claim values are often predictable or guessable, the attack has a modest discovery cost but does not require the signing secret.

Generated by OpenCVE AI on August 3, 2026 at 09:32 UTC.

Remediation

Vendor Workaround

Verify the token before revoking it: call decode_and_verify (or a verify-without-expiry variant, so already-expired tokens remain revocable) on the caller-supplied token and pass only tokens whose signature validates into Guardian.revoke/3. Reject tokens with an invalid signature at the application boundary.


OpenCVE Recommended Actions

  • Update the Guardian library to version 2.4.1 or later to obtain the vendor-provided fix.
  • In the application code, verify any caller-supplied token by calling decode_and_verify (or a variant that skips expiration checks) before passing it to Guardian.revoke/3, and reject tokens whose verification fails.
  • Ensure that the server rejects invalid or tampered tokens at the application boundary so that Guardian.revoke/3 never receives unverified claims.

Generated by OpenCVE AI on August 3, 2026 at 09:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 03 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sat, 01 Aug 2026 19:00:00 +0000

Type Values Removed Values Added
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.
Title Guardian.revoke/3 acts on unverified token claims, allowing forged-token session revocation
First Time appeared Ueberauth
Ueberauth guardian
Weaknesses CWE-347
CPEs cpe:2.3:a:ueberauth:guardian:*:*:*:*:*:*:*:*
Vendors & Products Ueberauth
Ueberauth guardian
References
Metrics cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Ueberauth Guardian
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-08-03T19:30:07.608Z

Reserved: 2026-06-17T10:44:34.365Z

Link: CVE-2026-55735

cve-icon Vulnrichment

Updated: 2026-08-03T19:30:00.900Z

cve-icon NVD

Status : Analyzed

Published: 2026-08-01T19:16:42.510

Modified: 2026-08-06T14:25:11.683

Link: CVE-2026-55735

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T09:45:04Z

Weaknesses
  • CWE-347

    Improper Verification of Cryptographic Signature