Commit graph

2 commits

Author SHA1 Message Date
Imugiii
35ead030b1 fix(auth): leurre anti-enumeration sur la demande de reset (parite timing/ecritures)
All checks were successful
CI / php-lint (push) Successful in 22s
CI / php-lint (pull_request) Successful in 22s
CI / static-tests (pull_request) Successful in 36s
CI / auto-merge (push) Has been skipped
CI / auto-merge (pull_request) Successful in 6s
CI / secret-scan (push) Successful in 11s
CI / static-tests (push) Successful in 35s
CI / secret-scan (pull_request) Successful in 8s
PasswordResetService::requestReset repondait instantanement et sans ecriture sur
un email inconnu, alors que le chemin email-connu genere un token (random_bytes +
SHA-256), fait un UPDATE et envoie un mail : oracle de timing + de profil
d'ecritures revelant l'existence d'un compte. Le commit P2 #11 annoncait pourtant
une parite anti-enumeration PR-wide (vraie sur le login, pas sur le reset).

payEnumerationDecoy() reproduit le cout CPU et UNE ecriture du chemin connu, mais
sur id = 0 (aucune ligne, rien persiste) ; aucun mail. Meme pattern que le leurre
du login (UPDATE no-op sur id = 0). Tests unknown-email (service + controleur)
mis a jour : 1 ecriture leurre sur id=0, pas de mail. Suite 188 verte, PHPStan L6.
2026-06-16 12:02:19 +00:00
1b0b20c12d feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11)
All checks were successful
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 17s
CI / static-tests (push) Successful in 32s
CI / auto-merge (push) Has been skipped
2026-06-15 20:18:59 +02:00