PHP 5.3.7 upgrade warning
- 5.3.7 upgrade warning (PHP.net)
- PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439) (徳丸浩の日記)
[22-Aug-2011]
5.3.7 upgrade warning (PHP.net)
Due to unfortunate issues with 5.3.7 (see bug#55439) users should wait with upgrading until 5.3.8 will be released (expected in few days).
PHP 5.3.7 がリリースされたけど、crypt() に重大なバグが含まれてしまったと。
crypt関数でMD5を指定した場合に、ソルトのみが出力されハッシュ値が常に空になってしまう。つまり、5.3.6以前で保存したパスワードとは認証が出来ず、5.3.7で保存するとどんなパスワードであっても認証できてしまうという。
修正した 5.3.8 が数日中にリリース予定。既に 5.3.7 にしてしまった場合は 5.3.6 にロールバックして、パスワードが空(ソルトのみ)になってないか確認が必要と(空の場合はパスワードのリセットも必要)。
■追記1
- PHP 5.3.8 Released! (PHP.net)
と言うことで、修正された 5.3.8 がリリースされました。
■追記2
- PHP5.3.7のcrypt関数のバグはこうして生まれた (徳丸浩の日記)
どうも 5.3.7RC4 まではなくて、RC5(最後のRC)で修正が入れられたらしい。crypt() の中で strcat を使ってる箇所があったので、strncat に変更して、さらに strlcat へ変更した。この strncat と strlcat は同じ型の引数を取るが第3引数の意味合いが異なる。それによって引き起こされたバグってことっぽい。