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
- 日本電気株式会社のベンダステータスが更新されました
