PHP 5.3.7 upgrade warning

[22-Aug-2011]
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).

5.3.7 upgrade warning (PHP.net)

PHP 5.3.7 がリリースされたけど、crypt() に重大なバグが含まれてしまったと。

crypt関数でMD5を指定した場合に、ソルトのみが出力されハッシュ値が常に空になってしまう。つまり、5.3.6以前で保存したパスワードとは認証が出来ず、5.3.7で保存するとどんなパスワードであっても認証できてしまうという。

修正した 5.3.8 が数日中にリリース予定。既に 5.3.7 にしてしまった場合は 5.3.6 にロールバックして、パスワードが空(ソルトのみ)になってないか確認が必要と(空の場合はパスワードのリセットも必要)。


追記1

と言うことで、修正された 5.3.8 がリリースされました。


追記2

どうも 5.3.7RC4 まではなくて、RC5(最後のRC)で修正が入れられたらしい。crypt() の中で strcat を使ってる箇所があったので、strncat に変更して、さらに strlcat へ変更した。この strncat と strlcat は同じ型の引数を取るが第3引数の意味合いが異なる。それによって引き起こされたバグってことっぽい。