password_verify() failed to verify bcrypt passwords containing null bytes
Ouverte
Personne n'a encore pris cette issue.
Bug
Extension: standard
Status: Needs Triage
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
The following code:
<?php
$hash = password_hash("secret", PASSWORD_BCRYPT);
var_dump(password_verify("secret", $hash));
var_dump(password_verify("secret" . chr(0) . "suffix", $hash));
?>
Resulted in this output:
bool(true)
bool(true)
But I expected this output instead:
bool(true)
bool(false)
PHP Version
all supported version
Operating System
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire l’exemple avec password_hash(), password_verify(), PASSWORD_BCRYPT et un octet nul, puis examinez l’implémentation de PHP et les tests existants de vérification des mots de passe. Le travail est terminé lorsqu’un mot de passe avec un suffixe d’octet nul n’est plus vérifié par rapport au hash bcrypt d’origine, tandis que le mot de passe inchangé est toujours vérifié.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c, php
- Domaine
- authentication, security
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100