読者です 読者をやめる 読者になる 読者になる

HTTP::Body::MultiPartにまずいセキュリティホールがあるので、しばらくPlack::Request::Upload使うときは気をつける。

Perl セキュリティ
経緯

JVNのフィード見てたらPerlモジュールのセイキュリティホールがあったので念の為確認したら思ったより危険だった。

JVNのページ
JVNDB-2013-005291 - JVN iPedia - 脆弱性対策情報データベース
セキュリティホールの詳細
#721634 - libhttp-body-perl: CVE-2013-4407: HTTP::Body::Multipart critical security bug - Debian Bug report logs
問題

Plack::Request::Upload::filenamePlack::Request::Upload::tempnameに、コマンドとして動作する文字列が入りうる。

対応

Plack::Request::Upload::filenamePlack::Request::Upload::tempnameをそのままsystem()exec()``やその他で使わない。

一応ディレクトリトラバーサルの対策はされてるっぽいが、コマンドとして実行されるような場合以外でもできるだけそのまま使うのはやめた方がよさそう。

あるいは、修正済みのHTTP::Bodyが出て普及するのを待つ。


追記

Plack::Request::Upload::pathもまずい。というかこれ、Plack::Request::Upload::tempnameと同じ。