Revue d'acceptabilité — PD-238¶
1. Analyse des écarts majeurs¶
ECT-01 — Rate limiter fail-open (VUL-01)¶
- Impact sur les invariants : touche directement INV-238-11 (rate limiting global). En cas de Redis indisponible, l’invariant est violé (absence de protection anti‑bruteforce).
- Justification de la classification : MAJEUR justifié (affaiblit une barrière de sécurité contractuelle, mais sans exposition directe de secrets).
- Avis sur l'action proposée : pertinente, mais le rapport ne précise pas le comportement attendu en mode fallback (quota, durée). L’action est nécessaire avant acceptation complète.
ECT-02 — ClassSerializerInterceptor absent (VUL-02)¶
- Impact sur les invariants : risque indirect sur INV-238-09 (secrets loggés) et sur la non‑exposition contrôlée des DTOs (si la sérialisation est inopérante, fuites possibles). Les endpoints MFA retournent des DTOs sensibles (secret/recoveryCodes).
- Justification de la classification : MAJEUR justifié (risque de fuite de données et non‑conformité aux règles de minimisation/logging).
- Avis sur l'action proposée : nécessaire et simple, mais le rapport ne prouve pas l’absence effective d’intercepteur (pas de preuve). À valider par artefact ou configuration.
ECT-03 — Tests invariants PD-27 en échec¶
- Impact sur les invariants : ne viole pas directement les invariants PD‑238, mais impacte la conformité globale si les tests PD‑27 restent contractuels. Il existe un conflit de périmètre non résolu.
- Justification de la classification : MAJEUR acceptable si les tests PD‑27 sont explicitement requalifiés/ajustés. En l’état, le rapport ne documente pas la décision de gouvernance.
- Avis sur l'action proposée : nécessaire ; la mise à jour des tests PD‑27 doit être tracée contractuellement (changement de périmètre ou exception documentée).
2. Analyse des écarts mineurs¶
ECT-04 — constantTimeEqual custom¶
- Impact réel : faible ; amélioration de robustesse crypto mais pas une violation explicite d’invariant.
- Priorité recommandée : MINEUR, à traiter opportunément.
ECT-05 — Rate limit absent sur /auth/reauth¶
- Impact réel : en contradiction avec la spec corrigée (INV‑238‑15 + CA‑238‑16 imposent JWT, mais pas explicitement rate limit). Le rapport considère cela mineur, mais c’est une divergence de protection par rapport au plan et aux attentes de sécurité.
- Priorité recommandée : MINEUR→MAJEUR si la politique globale exige rate limit sur /auth/reauth. À clarifier.
ECT-06 — Logs reauth trop détaillés¶
- Impact réel : exposition potentielle d’un signal d’énumération (USER_NOT_FOUND vs INVALID_PASSWORD). Faible mais exploitable.
- Priorité recommandée : MINEUR, à corriger pour durcissement sécurité.
3. Cohérence du verdict¶
- Le verdict "GO AVEC RÉSERVES" est-il justifié ? Oui, sous réserve : les trois écarts majeurs affectent des invariants de sécurité/robustesse et doivent être corrigés avant acceptation complète.
- Les conditions de passage sont-elles claires ? Partiellement : les actions sont listées, mais les preuves requises pour lever ECT‑01/ECT‑02/ECT‑03 ne sont pas spécifiées (tests attendus, artefacts de config).
- Y a-t-il des risques non documentés ? Oui : incohérence périmètre PD‑27 vs PD‑238 (tests invariants), et absence de preuve que les erreurs ERR‑238‑* sont uniformisées.
4. Verdict du reviewer¶
Verdict : GO AVEC RÉSERVES Justification : les écarts majeurs impactent des invariants de sécurité (rate limiting, sérialisation) et la conformité inter‑story (PD‑27). Les corrections sont identifiées mais non prouvées ; l’acceptation complète est prématurée.