Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-71206-PoC — PoC : Shiori JWT CheckToken ne re-valide jamais l'état du compte (CVE-2026-71206, Élevé 8.2) | Kitploit
Outils/GitHubGitHub/nel-droid/cve-2026-71206-poc
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebAuthentification
GitHubnel-droid/cve-2026-71206-poc

CVE-2026-71206-PoC

PoC : Shiori JWT CheckToken ne re-valide jamais l'état du compte (CVE-2026-71206, Élevé 8.2)

Voir le dépôt
19il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-71206 — Shiori : le CheckToken JWT ne revalide jamais l'état du compte

Produit : go-shiori/shiori Fichier : internal/domains/auth.go CWE : CWE-613 — Insufficient Session Expiration CVSS 3.1 : AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L — 8.2 (Élevé) CNA : Turan Security · Fiche CVE

Description

La fonction CheckToken de Shiori (internal/domains/auth.go) ne valide que la signature HMAC du JWT et renvoie l'objet claims.Account embarqué sans modification — elle ne récupère jamais le compte depuis la base de données au moment de traiter une requête. Aucun magasin de sessions ni mécanisme de révocation de jeton n'existe dans la base de code.

Impact

Une fois qu'un JWT est émis, il reste pleinement valide pendant toute sa durée de vie, quel que soit le sort du compte par la suite. Si un administrateur supprime un utilisateur, le rétrograde, ou si le mot de passe de l'utilisateur subit une rotation après une compromission suspectée, tout JWT émis pour ce compte avant le changement continue de s'authentifier avec succès avec les claims d'origine (rôle, identifiant de compte, etc.) intégrés dans le jeton — il n'existe aucun état côté serveur pour l'invalider.

Reproduction

  1. Authentifiez-vous en tant qu'utilisateur et capturez le JWT émis (par ex. via POST /api/v1/auth/login).
  2. En tant qu'administrateur, supprimez le compte ou rétrogradez le rôle de l'utilisateur.
  3. Rejouez le JWT d'origine contre n'importe quel endpoint authentifié :
    GET /api/bookmarks
    Authorization: Bearer <original JWT>
    
  4. La requête réussit grâce aux claims obsolètes — le compte supprimé/rétrogradé conserve l'accès, car CheckToken ne vérifie jamais l'état actuel de la base de données, uniquement la signature.

Cause racine

CheckToken considère la charge utile du JWT comme la source de vérité pour l'état du compte, au lieu de la traiter comme un justificatif de type bearer à revalider contre la base de données (ou à vérifier contre une liste de révocation) à chaque utilisation.

Recommandation de correctif

Récupérez à nouveau le compte par son ID à chaque requête authentifiée (ou, au minimum, vérifiez un magasin de révocation/sessions indexé par un identifiant de jeton (jti), invalidé lors de la suppression du compte, de la rétrogradation ou du changement de mot de passe) plutôt que de vous fier aux claims embarqués tels quels.

Télécharger l’outil