password_verify() failed to verify bcrypt passwords containing null bytes
Offen
Dieses Issue hat noch niemand übernommen.
Bug
Extension: standard
Status: Needs Triage
- Vorherrschende Sprache
- C
- Sterne
- 40.4k
- Forks
- 8.1k
- Ø Merge
- 2 T. 13 Std.
- Gemergte PRs (30 T.)
- 96
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das Beispiel mit password_hash(), password_verify(), PASSWORD_BCRYPT und einem Nullbyte zu reproduzieren; verfolge dann die PHP-Implementierung und die vorhandenen Tests zur Passwortverifizierung. Fertig ist die Änderung, wenn ein Passwort mit einem Nullbyte-Suffix nicht mehr gegen den ursprünglichen bcrypt-Hash verifiziert wird, während das unveränderte Passwort weiterhin verifiziert wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c, php
- Bereich
- authentication, security
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100