PHP 5.3.7に重大なバグ、strncatの罠にはまる

2011年8月24日 17:01

印刷

記事提供元:スラド

 あるAnonymous Coward 曰く、

 8月18日にリリースされたPHP 5.3.7であるが、crypt()をMD5のsaltで実行した場合にsaltしか返さないという壮大すぎるバグが存在し、使用を控えるように案内が出ている。

 問題になった箇所の変更はずばりこちらのコードっぽいが、strcat(passwd, "$"); を strncat(passwd, "$", 1); に変更しただけのようだ。おそらく、size指定の意味を勘違いしていたのだろう。

 strncatのsizeの罠にはまらないようにしましょう。

 バグの原因については、徳丸浩氏がブログにて詳細に解説しているのでそちらもご参照を。なお、すでに問題を修正したPHP 5.3.8がリリースされている。

 スラッシュドットのコメントを読む | バグ | プログラミング

 関連ストーリー:
PHPの浮動小数点処理に無限ループのバグ 2011年01月09日
PHPは駄目な言語なのか? 2008年02月03日
OpenBSD開発者Theo de Raadt@本家 2004年01月03日
Mac OS Xにバッファオーバーフロー 2003年12月16日

 

※この記事はスラドから提供を受けて配信しています。

関連記事