CVE-2026-55735 in guardian
Resumen
por VulDB • 2026-08-01
Verificación incorrecta de la firma criptográfica en ueberauth guardian permite que un atacante no autenticado revogue la sesión de una víctima mediante un token falsificado.
Guardian.revoke/3 en lib/guardian.ex decodifica el token proporcionado con peek/1, lo cual no realiza ninguna verificación de firma (solo descodifica base64 el encabezado y la carga útil del JWT). Las reclamaciones resultantes sin verificar se reenvían directamente a la devolución de llamada revoke del módulo de tokens configurado y a la devolución de llamada on_revoke de la implementación, que es un sumidero mutador de estado. Las operaciones hermanas refresh/2 e exchange/4 llaman ambas a decode_and_verify primero, por lo que se verifica la firma antes de actuar sobre las reclamaciones; revoke/3 es el único camino mutador de estado que actúa sobre las reclamaciones sin verificar la firma.
Un atacante que conozca o adivine los valores de las reclamaciones identificativas (jti, sub) de una víctima puede falsificar un JWT con esas reclamaciones, firmarlo con una clave arbitraria y presentarlo en cualquier punto final que canalice un token proporcionado por el usuario hacia Guardian.revoke/3 (el patrón estándar de cierre de sesión / revocación de sesión). Cuando el módulo de tokens muta el estado basado en las reclamaciones (por ejemplo, eliminación de la lista blanca o inserción en la lista negra, como una tienda estilo GuardianDb), se expulsa la sesión legítima de la víctima. Esto constituye un denegación de servicio por revocación no autenticada de sesiones; el atacante nunca necesita conocer la clave secreta de firma.
Este problema afecta a guardian: desde 1.0.0 hasta antes de 2.4.1.
If you want to get best quality of vulnerability data, you may have to visit VulDB.