| Summary | HTTP header injection vulnerability in the URLConnection class in Android OS 2.2 through 6.0 allows remote attackers to execute arbitrary scripts or set arbitrary values in cookies. |
|---|---|
| Publication Date | April 14, 2017, 2:59 a.m. |
| Registration Date | Jan. 26, 2021, 2:06 p.m. |
| Last Update | Nov. 21, 2024, 11:45 a.m. |
| CVSS3.0 : CRITICAL | |
| スコア | 9.8 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 攻撃元区分(AV) | ネットワーク |
| 攻撃条件の複雑さ(AC) | 低 |
| 攻撃に必要な特権レベル(PR) | 不要 |
| 利用者の関与(UI) | 不要 |
| 影響の想定範囲(S) | 変更なし |
| 機密性への影響(C) | 高 |
| 完全性への影響(I) | 高 |
| 可用性への影響(A) | 高 |
| CVSS2.0 : HIGH | |
| Score | 7.5 |
|---|---|
| Vector | AV:N/AC:L/Au:N/C:P/I:P/A:P |
| 攻撃元区分(AV) | ネットワーク |
| 攻撃条件の複雑さ(AC) | 低 |
| 攻撃前の認証要否(Au) | 不要 |
| 機密性への影響(C) | 低 |
| 完全性への影響(I) | 低 |
| 可用性への影響(A) | 低 |
| Get all privileges. | いいえ |
| Get user privileges | いいえ |
| Get other privileges | いいえ |
| User operation required | いいえ |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:google:android:2.2.3:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:3.2.6:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:5.1.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:3.2.4:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:5.0.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:6.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:3.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:3.2.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.0.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3:rev1:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.4.3:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3.6:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.0.4:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.3:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.0.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3.3:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.4.4:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:3.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.2.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3.5:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:5.0.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:3.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:5.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.0.3:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.2.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.2.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3.4:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.4:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.4.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3.7:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.2:rev1:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:5.1.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.2.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.3.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:3.2.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.4.2:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:2.3:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:5.1:*:*:*:*:*:*:* | |||||
| cpe:2.3:o:google:android:4.1.2:*:*:*:*:*:*:* | |||||
| Title | Android Platform の URLConnection クラスに HTTP ヘッダインジェクションの脆弱性 |
|---|---|
| Summary | Android Platform の URLConnection クラスには、HTTP ヘッダインジェクションの脆弱性が存在します。 Android Platform の URLConnection クラスは、Android のバージョンにより実装が異なっており Android 4.4.2 からは、オープンソースの OkHttp から取り込んだソースコードを使用しています。 OkHttp の 2.5.0 より前のバージョンには HTTP ヘッダインジェクションの脆弱性があります。 Android Platform では OkHttp 2.5.0 より前のバージョンのソースコードを取り込んでいる URLConnection クラスに同じ脆弱性が存在しています。 Android Platform の URLConnection.setRequestProperty() や URLConnection.addRequestProperty() を使っている実行環境では、アプリケーションが HTTP ヘッダを設定・追加する際に、外部から受け取った信頼できない値を検証しないまま使っていると HTTP ヘッダインジェクションが行なわれる可能性があります。 RFC 2616 の 2.2 Basic Rules によると HTTP ヘッダフィールド値は継続行が許可されています。 "HTTP/1.1 header field values can be folded onto multiple lines if the continuation line begins with a space or horizontal tab. All linear white space, including folding, has the same semantics as SP. A recipient MAY replace any linear white space with a single SP before interpreting the field value or forwarding the message downstream." RFC 2616 は RFC7230 から RFC7235 が発行された際に obsoleted になりました。 RFC 7230 の 3.2.4 Field Parsing によると message/http media type 以外は継続行が許可されなくなりました。 "Historically, HTTP header field values could be extended over multiple lines by preceding each extra line with at least one space or horizontal tab (obs-fold). This specification deprecates such line folding except within the message/http media type (Section 8.3.1). A sender MUST NOT generate a message that includes line folding (i.e., that has any field-value that contains a match to the obs-fold rule) unless the message is intended for packaging within the message/http media type." |
| Possible impacts | 想定される影響はアプリケーションによって異なりますが、表示されるページが改ざんされたり任意のスクリプトが実行されたり Cookie に任意の値を設定されたりする可能性があります。 |
| Solution | [対策済みの OkHttp を使用する] OkHttp では本脆弱性はバージョン 2.5.0 で修正されています。最新の OkHttp を使いアプリケーションを再実装することで対策を行う事が可能です。 Android Platform では、Android 6.0 をリリースした後に Github の master branch で OkHttp 2.5.0 の修正を取り込んでいます。 [ワークアラウンド] Android Platform の URLConnection.setRequestProperty() や URLConnection.addRequestProperty() の引数として渡される文字列の中に、制御文字など不正な文字が含まれないように入力値検査を行ってください。 詳細は RFC7230 3.2.4 Field Parsing を参照してください。 |
| Publication Date | Feb. 19, 2016, midnight |
| Registration Date | Feb. 19, 2016, 4:54 p.m. |
| Last Update | March 29, 2018, 11:12 a.m. |
| Android 2.2 から 6.0 に含まれる URLConnection クラス |
| No | Changed Details | Date of change |
|---|---|---|
| 0 | [2016年02月19日] 掲載 [2017年05月23日] CVSS による深刻度:内容を更新 CWE による脆弱性タイプ一覧:CWE-ID を追加 参考情報:National Vulnerability Database (NVD) (CVE-2016-1155) を追加 |
Feb. 17, 2018, 10:37 a.m. |
| 1 | [2018年03月29日] ベンダ情報:日本電気 (NV18-007) を追加 |
March 29, 2018, 9:58 a.m. |