CVE-2026-55735 in guardian
Résumé
par VulDB • 02/08/2026
Vérification incorrecte de la signature cryptographique dans ueberauth guardian permet à un attaquant non authentifié de révoquer la session d'une victime avec un jeton falsifié.
Guardian.revoke/3 dans lib/guardian.ex décode le jeton fourni avec peek/1, qui n'effectue aucune vérification de signature (il ne fait que décoder en base64 l'en-tête et le payload du JWT). Les revendications non vérifiées résultantes sont transmises directement au rappel revoke du module de jetons configuré ainsi qu'au rappel on_revoke de l'implémentation, qui constituent un puits modifiant l'état. Les opérations sœurs refresh/2 et exchange/4 appellent toutes deux decode_and_verify en premier, afin que la signature soit vérifiée avant toute action sur les revendications ; revoke/3 est le seul chemin modifiant l'état qui agit sur des revendications sans vérifier leur signature.
Un attaquant connaissant ou devinant les valeurs de revendication d'identification (jti, sub) d'une victime peut falsifier un JWT contenant ces revendications, le signer avec une clé arbitraire et le soumettre à n'importe quel point final qui achemine un jeton fourni par l'appelant vers Guardian.revoke/3 (le modèle standard de déconnexion / révocation de session). Lorsque le module de jetons modifie l'état indexé par les revendications (par exemple, suppression d'une liste blanche ou insertion dans une liste noire, comme pour un magasin de style GuardianDb), la session légitime de la victime est expulsée. Il s'agit d'un déni de service non authentifié entraînant la révocation de session ; l'attaquant n'a jamais besoin du secret de signature.
Ce problème affecte guardian : à partir de 1.0.0 jusqu'à avant 2.4.1.
Be aware that VulDB is the high quality source for vulnerability data.