PD-241 — Revue Sécurité (Logout)¶
Verdict¶
⚠️ RÉSERVES
Vulnérabilités / Risques identifiés¶
1) Absence de protection anti‑replay du refresh token - Impact : un refresh token intercepté peut potentiellement être révoqué tardivement et réutilisé avant invalidation effective. - Gravité : Moyen
2) Audit log failure peut masquer la cause initiale - En cas d’exception avant l’audit, la journalisation de l’échec peut perdre le contexte (errorType générique). - Impact : difficulté d’investigation en incident. - Gravité : Faible
3) Rate limiting absent - Même si logout est auth-protected, une rafale d’appels peut générer un bruit de logs et stress Keycloak. - Impact : risque de DoS applicatif mineur. - Gravité : Faible
Conformité aux invariants de sécurité¶
- INV-241-01 (JWT requis) : ✅ Guard appliqué
- INV-241-02 (session Keycloak invalidée) : ✅ via invalidateSession
- INV-241-03 (refresh token invalidé si présent) : ✅ conditionnel
- INV-241-04 (format d’erreur contractuel) : ✅ via filter
- INV-241-05 (erreur explicite si Keycloak échoue) : ✅ LogoutFailedError
Forbidden patterns (code contracts)¶
- Accès anonyme : non observé
- Retour 200 si échec : non observé
- Logging refresh_token : non observé
- Ignorer erreurs Keycloak : non observé
- Désactiver circuit breaker : non observé
Conclusion¶
L’implémentation est globalement conforme aux invariants de sécurité et aux patterns interdits. Les réserves portent sur l’absence de protection anti‑replay du refresh token et l’absence de rate limiting, avec un impact limité mais à surveiller.