PHP 5.6.x < 5.6.12 の複数の脆弱性

high Web App Scanning プラグイン ID 98804

概要

PHP 5.6.x < 5.6.12 の複数の脆弱性

説明

バナーによると、リモートのWebサーバーで実行されているPHPのバージョンは5.6.12より前の5.6.xです。したがって、以下の複数の脆弱性による影響を受けます。

-unserialize() 関数への入力のサニタイズが不適切であるため、ファイル spl_dllist.c にuse-after-free エラーが存在します。攻撃者が、特別に細工された SplDoublyLinkedList オブジェクトを使用して、これを悪用し、解放したメモリを逆参照して、任意のコードを実行する可能性があります。

-unserialize() 関数への入力のサニタイズが不適切であるため、ファイル spl_observer.c due にuse-after-free エラーが存在します。攻撃者が、特別に細工された SplObjectStorage オブジェクトを使用して、これを悪用し、解放したメモリを逆参照して、任意のコードを実行する可能性があります。

-unserialize() 関数への入力のサニタイズが不適切であるため、ファイル spl_array.c にuse-after-free エラーが存在します。攻撃者が、特別に細工された SplArrayObject オブジェクトを使用して、これを悪用し、解放したメモリを逆参照して、任意のコードを実行する可能性があります。

- メソッドの再帰呼び出し中、unserialize() 関数の使用が不適切であるため、zend_exceptions.c ファイルに欠陥が存在します。リモートの攻撃者がこれを悪用し、 PHP を使用するアプリケーションをクラッシュさせる可能性があります。

- unserialize() 関数および __toString() 関数によるタイプチェックが不十分であるため、zend_exceptions.c ファイルに欠陥が存在します。リモートの攻撃者がこれを悪用して、 NULL ポインターデリファレンスや予期せぬメソッドの実行を引き起こしたり、これによって PHP を使用するアプリケーションをクラッシュさせたりする可能性があります。

- ユーザー提供の入力のサニタイズが不十分であるため、phar_object.c ファイルにパストラバーサルの欠陥が存在します。攻撃者がこれを悪用し、任意のファイルに書き込む可能性があります。

- zend_hash_get_current_key または「Z*」の呼び出しを処理する際に、php_http.c ファイルの _call() に複数の型の取り違え (Type Confusion)の欠陥が存在します。攻撃者がこれを悪用し、メモリの内容を漏洩させたり、 PHP を使用するアプリケーションをクラッシュさせたりする可能性があります。

- unserialize() 関数に対する入力のサニタイズが不適切であるため、spl_array.c ファイルにダングリングポインターエラーが存在します。攻撃者が、特別に細工された SplDoublyLinkedList オブジェクトを使用して、これを悪用し、割り当て解除されたポインターのコントロールを取得し、任意のコードを実行する可能性があります。

- imagefilltoborder() 関数による大きな負の座標がある画像の処理が不適切なために、gd.c ファイルに欠陥が存在します。攻撃者がこれを悪用して、スタックオーバーフローを引き起こし、PHP を使用するアプリケーションをクラッシュさせる可能性があります。

- odbc_fetch_array() 関数が NVARCHAR (MAX)として定義された列を処理する際、php_odbc.c ファイルに欠陥が存在します。攻撃者がこれを悪用して、PHP を使用するアプリケーションをクラッシュさせる可能性があります。

- openssl.c ファイルの openssl_random_pseudo_bytes() 関数が十分な乱数を生成しません。これによって、攻撃者が簡単に結果を予測でき、そのために、さらに攻撃が行われる可能性があります。

- ユーザー指定入力の検証が不適切なために、spl_observer.c の unserialize() 関数に use-after-free エラーが存在します。リモートの攻撃者がこれを悪用してすでに解放されたメモリを逆参照し、これにより、任意のコードが実行される可能性があります。

- ヘッダーフィールドを通じて渡された入力の検証が不適切であるため、soap.c の serialize_function_call() 関数に型の取り違え (Type Confusion)の欠陥が存在します。リモートの攻撃者がこれを悪用し、任意のコードを実行する恐れがあります。

- spl_dllist.c の unserialize() 関数に、ユーザー指定入力の逆シリアル化の際に発生する use-after-free エラーが存在します。リモートの攻撃者がこれを悪用してすでに解放されたメモリを逆参照し、これにより、任意のコードが実行される可能性があります。

- ユーザー指定入力の検証が不適切なために、gmp.c の gmp_unserialize() 関数に use-after-free エラーが存在します。リモートの攻撃者がこれを悪用してすでに解放されたメモリを逆参照し、これにより、任意のコードが実行される可能性があります。

- 配列の比較時に発生する zend_hash.c の zend_hash_compare() 関数に、整数切り捨ての欠陥が存在します。リモートの攻撃者がこれを悪用して、比較中に配列を不適切に一致させる可能性があります。

スキャナーはこれらの問題のテストを行っておらず、代わりにアプリケーションの自己報告されたバージョン番号にのみ依存しています。

ソリューション

PHP バージョン 5.6.12 以降にアップグレードしてください。

参考資料

http://php.net/ChangeLog-5.php#5.6.12

http://seclists.org/fulldisclosure/2015/Aug/17

http://seclists.org/fulldisclosure/2015/Aug/18

http://seclists.org/fulldisclosure/2015/Aug/19

https://bugs.php.net/bug.php?id=69793

https://bugs.php.net/bug.php?id=70121

プラグインの詳細

深刻度: High

ID: 98804

タイプ: remote

ファミリー: Component Vulnerability

公開日: 2019/1/9

更新日: 2023/3/14

スキャン テンプレート: api, basic, full, pci, scan

リスク情報

VPR

リスクファクター: Medium

スコア: 4.4

CVSS v2

リスクファクター: High

基本値: 7.5

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS スコアのソース: CVE-2015-6831

CVSS v3

リスクファクター: High

基本値: 7.5

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

CVSS スコアのソース: CVE-2015-6833

脆弱性情報

CPE: cpe:2.3:a:php:php:*:*:*:*:*:*:*:*

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2016/1/19

脆弱性公開日: 2016/1/19

参照情報

CVE: CVE-2015-6831, CVE-2015-6832, CVE-2015-6833, CVE-2015-8867, CVE-2015-8874, CVE-2015-8879

BID: 76737, 76739, 76735, 87481, 90714, 90842