「HTTP_PROXY」環境変数に不適切な値が与えられる脆弱性、多くの環境で影響
2016年7月20日 10:47
あるAnonymous Coward曰く、 JPCERT/CCが、CGI等を利用するWebサーバの脆弱性(CVE-2016-5385等)に関する注意喚起を行っている。
UNIX/Linux系環境で動作するHTTPクライアントの多くは、通信を行う際に「HTTP_PROXY」環境変数を参照し、もしこの環境変数が設定されていればここで指定されているホストをプロクシとして使用するという動作を行う。このHTTP_PROXY環境は本来はサーバーやアプリケーションを実行する側が設定するものであるが、HTTPリクエストヘッダを利用してこれを外部から任意の値に書き換えることができるという(INTERNET Watch、ITmedia、JPCERT/CC)。
kb.cert.orgの説明が分かりやすいが、CGIの動作について記述したRFC3875の4.1.18.では、HTTPヘッダの形でサーバーに渡されたメタ変数について、その変数名を大文字にし、「-」を「_」に置換し、先頭に「HTTP_」を付ける、というルールが明記されている。もしサーバーに対して送信されるリクエストヘッダ内に「proxy:」というヘッダが存在した場合、このルールに従うと「HTTP_PROXY」という変数名に送信されたヘッダの内容が格納されることになる。CGIの多くではこのような変数を環境変数に格納するため、結果としてHTTP_PROXY環境変数が外部から送信された値に書き換えられてしまうことになる。
また、同様にして「HTTP_」で始まるHTTP_PROXY以外の環境変数についても外部から書き換えることが可能になり、これを悪用することで攻撃者は中間者攻撃やサーバーに対し意図しない挙動を実行させることが可能になる可能性がある。
現時点ではApache HTTP ServerやPHP、GO、Pythonなど多くのソフトウェアが影響を受けるとのこと。対策としてはリクエストヘッダ内の「proxy:」ヘッダを無視するよう設定する、HTTP_PROXYや「HTTP_」で始まる環境変数を使用しない、などが挙げられている。
スラドのコメントを読む | セキュリティセクション | セキュリティ | インターネット
関連ストーリー: OS X 10.10.xに権限昇格の脆弱性、sudoersファイルを任意のユーザーが書き換え可能 2015年07月24日 Apacheの「AddHandler」設定にご注意を 2015年02月27日 GNU Bashに重大な脆弱性、環境変数を渡して呼ぶことで任意コード実行が可能に 2014年09月25日 FreeBSDに緊急性の高い脆弱性が発覚、セキュリティアドバイザリが公開 2009年12月07日