Skip to content

Commit eab0079

Browse files
committed
Fix #78269 password_hash uses weak options for argon2
1 parent 768ad70 commit eab0079

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

NEWS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ PHP NEWS
4545
- Standard:
4646
. Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit).
4747
(cmb)
48+
. Fixed bug #78269 (password_hash uses weak options for argon2). (Remi)
4849

4950
27 Jun 2019, PHP 7.2.20
5051

ext/standard/php_password.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ PHP_MINIT_FUNCTION(password);
3333
#define PHP_PASSWORD_BCRYPT_COST 10
3434

3535
#if HAVE_ARGON2LIB
36-
#define PHP_PASSWORD_ARGON2_MEMORY_COST 1<<10
37-
#define PHP_PASSWORD_ARGON2_TIME_COST 2
38-
#define PHP_PASSWORD_ARGON2_THREADS 2
36+
#define PHP_PASSWORD_ARGON2_MEMORY_COST (64 << 10)
37+
#define PHP_PASSWORD_ARGON2_TIME_COST 4
38+
#define PHP_PASSWORD_ARGON2_THREADS 1
3939
#endif
4040

4141
typedef enum {

ext/standard/tests/password/password_needs_rehash_argon2.phpt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,12 @@ if (!defined('PASSWORD_ARGON2I')) die('skip password_needs_rehash not built with
99

1010
$hash = password_hash('test', PASSWORD_ARGON2I);
1111
var_dump(password_needs_rehash($hash, PASSWORD_ARGON2I));
12-
var_dump(password_needs_rehash($hash, PASSWORD_ARGON2I, ['memory_cost' => 1<<17]));
13-
var_dump(password_needs_rehash($hash, PASSWORD_ARGON2I, ['time_cost' => 4]));
14-
var_dump(password_needs_rehash($hash, PASSWORD_ARGON2I, ['threads' => 4]));
12+
var_dump(password_needs_rehash($hash, PASSWORD_ARGON2I, ['memory_cost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST * 2]));
13+
var_dump(password_needs_rehash($hash, PASSWORD_ARGON2I, ['time_cost' => PASSWORD_ARGON2_DEFAULT_TIME_COST +1]));
1514
echo "OK!";
1615
?>
1716
--EXPECT--
1817
bool(false)
1918
bool(true)
2019
bool(true)
21-
bool(true)
2220
OK!

0 commit comments

Comments
 (0)