Category:
Web
・・・されたそうです。
「KDDI au: ダウンロードCGI > サンプルプログラムのセキュリティに関する重要なお知らせ」
「ITmedia News:KDDIのダウンロードCGIサンプルプログラムにディレクトリトラバーサルの脆弱性」
この CGI、以前(使う予定も無いのに)ダウンロードしたことがあったので、ちょっと比較してみました。
まず、今回の問題はディレクトリトラバーサル(引数のファイル名に相対パスを許容することで意図しないディレクトリ / ファイルへのアクセスが行われてしまい、データの漏洩などが発生する問題)ということで、入力されたファイルのパスをチェックしなかったということが予想できます。実際そのとおりで、以下の2行が追加されていました。
追加された checkpath サブルーチンでは、渡された文字列に
・「/」を含む場合、若しくは
・「..」または「.」に等しい場合
に 0 を返すようになっています。
他にも、ファイルの open が sysopen に変更されるなど、セキュリティを意識した修正が行われたようです。
でも、デバッグコードの外し忘れと思われるものがあるのですが・・・。
open (OUT,">>test.txt");
これは旧版(72行)、新版(75行)ともにあります。ハンドル OUT はどこでも使われてませんし、close もされていません。うーむ。
*
ファイルの更新日時を見る限りでは、旧版 CGI が作成されたのは 2001年5月31日。新版 CGI の更新日は 2007年6月26日 となっていますから、実に 6 年以上脆弱性が放置されていたことになります。ダウンロード機能を使う必要があるのは、どちらかと言えばプロの Web 屋さんだと思われるので、このダウンロード CGI をオリジナルのまま流用しているケースは少ないように思われます。しかし、KDDI のような会社があまりにも基本的なミスを犯していたことに驚きを覚えました。
*
au 携帯のセキュリティについては色々言いたいこともあるのですが、これはまたの機会に。
「KDDI au: ダウンロードCGI > サンプルプログラムのセキュリティに関する重要なお知らせ」
「ITmedia News:KDDIのダウンロードCGIサンプルプログラムにディレクトリトラバーサルの脆弱性」
この CGI、以前(使う予定も無いのに)ダウンロードしたことがあったので、ちょっと比較してみました。
まず、今回の問題はディレクトリトラバーサル(引数のファイル名に相対パスを許容することで意図しないディレクトリ / ファイルへのアクセスが行われてしまい、データの漏洩などが発生する問題)ということで、入力されたファイルのパスをチェックしなかったということが予想できます。実際そのとおりで、以下の2行が追加されていました。
20: #check file path
21: &checkpath($namex) or die("bad file name");
追加された checkpath サブルーチンでは、渡された文字列に
・「/」を含む場合、若しくは
・「..」または「.」に等しい場合
に 0 を返すようになっています。
他にも、ファイルの open が sysopen に変更されるなど、セキュリティを意識した修正が行われたようです。
でも、デバッグコードの外し忘れと思われるものがあるのですが・・・。
open (OUT,">>test.txt");
これは旧版(72行)、新版(75行)ともにあります。ハンドル OUT はどこでも使われてませんし、close もされていません。うーむ。
*
ファイルの更新日時を見る限りでは、旧版 CGI が作成されたのは 2001年5月31日。新版 CGI の更新日は 2007年6月26日 となっていますから、実に 6 年以上脆弱性が放置されていたことになります。ダウンロード機能を使う必要があるのは、どちらかと言えばプロの Web 屋さんだと思われるので、このダウンロード CGI をオリジナルのまま流用しているケースは少ないように思われます。しかし、KDDI のような会社があまりにも基本的なミスを犯していたことに驚きを覚えました。
*
au 携帯のセキュリティについては色々言いたいこともあるのですが、これはまたの機会に。
RSS
Comments