CVE-2026-55735

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:ueberauth:guardian:*:*:*:*:*:*:*:*

History

23 Oct 2026, 22:10

Type Values Removed Values Added
Summary
  • (es) Verificación Incorrecta de Firma Criptográfica en ueberauth guardian permite a un atacante no autenticado revocar la sesión de una víctima con un token falsificado. Guardian.revoke/3 en lib/guardian.ex decodifica el token suministrado con peek/1, que no realiza verificación de firma (solo decodifica en base64 el encabezado y la carga útil del JWT). Las reclamaciones no verificadas resultantes se reenvían directamente a la devolución de llamada ’revoke’ del módulo de token configurado y a la devolución de llamada ’on_revoke’ de la implementación, un sumidero que muta el estado. Las operaciones hermanas refresh/2 y exchange/4 ambas llaman primero a decode_and_verify, por lo que la firma se verifica antes de que cualquier cosa actúe sobre las reclamaciones; revoke/3 es la única ruta que muta el estado y que actúa sobre las reclamaciones sin verificar la firma. Un atacante que conoce o adivina los valores de reclamación identificativos de una víctima (jti, sub) puede falsificar un JWT que contenga esas reclamaciones, firmarlo con una clave arbitraria y enviarlo a cualquier punto final que canalice un token suministrado por el llamador a Guardian.revoke/3 (el patrón estándar de cierre de sesión / revocación de sesión). Cuando el módulo de token muta el estado indexado por las reclamaciones (eliminación de lista blanca o inserción en lista negra, por ejemplo, un almacén estilo GuardianDb), la sesión legítima de la víctima es expulsada. Esto es una denegación de servicio de revocación de sesión no autenticada; el atacante nunca necesita el secreto de firma. Este problema afecta a guardian: desde 1.0.0 antes de 2.4.1.

Information

Published : 2026-08-01 19:16

Updated : 2026-10-23 22:10


NVD link : CVE-2026-55735

Mitre link : CVE-2026-55735

CVE.ORG link : CVE-2026-55735


JSON object : View

Products Affected

ueberauth

  • guardian
CWE
CWE-347

Improper Verification of Cryptographic Signature