JVNVU#91485132
CGI ウェブサーバがヘッダ Proxy の値を環境変数 HTTP_PROXY に設定する脆弱性
CGI または類似のコンテキストで動作しているウェブサーバには、クライアントが指定したヘッダ Proxy
の値を内部の環境変数 HTTP_PROXY
に登録してしまう脆弱性が存在します。この脆弱性によって、内部のサブリクエストに中間者攻撃 (man-in-the-middle attack) を受けたり、サーバを任意のホストに接続させられたりする可能性があります。
- CGI または類似のコンテキストで動作しているウェブサーバ
信頼できない入力値によるセキュリティ判定 (CWE-807) および 外部入力による重要な変数またはデータの初期化 (CWE-454)
CGI または類似のコンテキストで動作しているウェブサーバには、クライアントが指定したヘッダ Proxy
の値を内部の環境変数 HTTP_PROXY
に登録する脆弱性が存在します。
HTTP リクエストヘッダの情報を環境変数に設定する場合、RFC3875 では次のような命名規則を規定しています。結果として、名前衝突が発生します。
- 大文字に変換する
- "
-
" を "_
" に変換する - 先頭に "
HTTP_
" を追加する
- プログラミング言語またはフレームワーク (また稀にアプリケーション自身) が、ユーザのリクエストに含まれるヘッダ
Proxy
または類似の変数をもとに環境変数HTTP_PROXY
を設定している (無害なリクエストデータが潜在的に有害な環境変数に変わる) - ウェブアプリケーションが
HTTP_PROXY
または類似の変数を (リクエスト形式を正しくチェックしていないなど) 適切に使用していないことにより、攻撃者の制御下にあるプロキシが使用される (HTTP_PROXY
が安全に使用されていない)
遠隔の第三者によって、内部のサブリクエストに対する中間者攻撃 (man-in-the-middle attack) を受けたり、サーバから任意のホストに接続させられたりする可能性があります。
アップデートする
本脆弱性に対する各製品やコンポーネントの対策版が存在する場合、アップデートを適用してください。対策版は、各製品開発者へご確認ください。
アップデートやパッチが存在しない場合、本脆弱性の影響を回避するため、次のワークアラウンドを実施してください。
リクエストヘッダ Proxy
をフィルタする
製品ごとのフィルタ方法に関する情報が、研究者やコミュニティから公開されています。
mod_headers
を使用している場合は、次の設定でヘッダ Proxy
を削除可能です:
RequestHeader unset Proxy
mod_security
を使用している場合は次のようなルールを設定することが可能です:
- SecRuleEngine On
- SecRule &REQUEST_HEADERS:Proxy "@gt 0"
- "id:1000005,log,deny,msg:'httpoxy denied'"
httprequest delheader Proxy
PHPFPM や PHPPM などでヘッダ
Proxy
をブロックするために次の設定を使用してください:
fastcgi_param HTTP_PROXY "";
Nginx で proxy_pass を使用している場合は次の設定を使用してください:
proxy_set_header Proxy "";
Microsoft は、影響を受けるサードパーティ製のフレームワークを使用した IIS サーバ向けのガイダンスを提供しています。
apphost.config
に次のルールを追加してください:
<system.webServer>
<rewrite>
<rules>
<rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
<match url="*.*" />
<serverVariables>
<set name="HTTP_PROXY" value="" />
</serverVariables>
<action type="None" />
</rule>
</rules>
</rewrite>
</system.webServer>
ベンダ | ステータス | ステータス 最終更新日 |
ベンダの告知ページ |
---|---|---|---|
NTT-CERT | 該当製品無し | 2016/07/20 | |
アライドテレシス株式会社 | 該当製品無し | 2016/09/13 | |
ジェイティ エンジニアリング株式会社 | 該当製品無し | 2016/07/19 | |
センチュリー・システムズ株式会社 | 脆弱性情報提供済み | 2016/07/19 | |
ビー・ユー・ジーDMG森精機株式会社 | 該当製品無し | 2016/07/19 | |
ミラクル・リナックス株式会社 | 該当製品あり | 2016/07/22 | |
ヤマハ株式会社 | 脆弱性情報提供済み | 2016/07/19 | |
ユミルリンク株式会社 | 脆弱性情報提供済み | 2016/07/19 | |
富士通株式会社 | 該当製品あり | 2016/08/31 | |
日本電気株式会社 | 該当製品あり | 2016/11/01 | |
株式会社インターネットイニシアティブ | 該当製品無し | 2016/07/19 | |
株式会社ジャストシステム | 脆弱性情報提供済み | 2016/07/19 | |
株式会社バッファロー | 脆弱性情報提供済み | 2016/07/19 | |
株式会社東芝 | 脆弱性情報提供済み | 2016/07/19 |
-
CERT/CC Vulnerability Note VU#797896
CGI web servers assign Proxy header values from client requests to internal HTTP_PROXY environment variables -
httpoxy
A CGI application vulnerability -
RFC3875
The Common Gateway Interface (CGI) Version 1.1
JPCERT 緊急報告 |
|
JPCERT REPORT | |
CERT Advisory | |
CPNI Advisory | |
TRnotes | |
CVE |
CVE-2016-5385 |
CVE-2016-5386 |
|
CVE-2016-5387 |
|
CVE-2016-5388 |
|
CVE-2016-1000109 |
|
CVE-2016-1000110 |
|
JVN iPedia |
- 2016/07/19
- 複数の開発者のベンダステータスを更新しました
- 2016/07/20
- NTT-CERTのベンダステータスが更新されました
- 2016/07/22
- ミラクル・リナックス株式会社のベンダステータスが更新されました
- 2016/08/04
- 富士通株式会社のベンダステータスが更新されました
- 2016/08/31
- 富士通株式会社のベンダステータスが更新されました
- 2016/09/14
- アライドテレシス株式会社のベンダステータスが更新されました
- 2016/11/02
- 日本電気株式会社のベンダステータスが更新されました