◆概要
プログラミング言語 PHP に disable_functions による実行制限を回避して、任意の PHP 関数が実行可能となる脆弱性が報告されています。何か別の脆弱性を悪用されて対象の Web サーバに悪意のある PHP ファイルを設置されてしまった場合に備えて、system 関数などの OS コマンド実行につながる関数の実行制限をしていたとしても、別の脆弱性を悪用して PHP ファイルのアップロードに成功した攻撃者に制限を回避され、OS コマンドを実行されてしまい侵入されてしまいます。脆弱性対策の強化とアップデートにより対策してください。
◆分析者コメント
攻撃対象となる Web サーバに何か別の脆弱性や設定不備が存在し、PHP ファイルをアップロード可能であるという前提条件が必要となる脆弱性です。PHP の disable_functions の設定により、system 関数や shell_exec 関数などの制限による OS コマンドの実行に対策していたとしても、当該脆弱性を悪用して OS コマンドが実行されてしまうため、攻撃者に侵入されてしまう危険性があります。前提条件が必要な脆弱性であるため悪用には難しいですが、PHP のバージョン 7 系は幅広く影響を受ける脆弱性であるため、多層防御を強化するために PHP のアップデートによる対策を推奨します。
◆深刻度(CVSS)
本記事執筆時点(2019 年 10 月 8 日)では CVE 番号が発番されておらず、脆弱性に対応したバージョンが公開されていません。
◆影響を受けるソフトウェア
以下のバージョンの PHP が脆弱性の影響を受けると報告されています。脆弱性に対応したエクスプロイトコードは Unix/Linux 版の PHP にのみ対応していますが、Windows で脆弱性が悪用できないかという情報は、本記事執筆時点(2019 年 10 月 8 日)では確認できていません。
+ PHP 7.0 - 7.0.33
+ PHP 7.1 - 7.1.31
+ PHP 7.2 - 7.2.23
+ PHP 7.3 - 7.3.10
◆解説
プログラミング言語 PHP のガベージコレクタに、unserialize 関数と組み合わせた場合に発現する、Use-After-Free の脆弱性が報告されています。
プログラミング言語 PHP に disable_functions による実行制限を回避して、任意の PHP 関数が実行可能となる脆弱性が報告されています。何か別の脆弱性を悪用されて対象の Web サーバに悪意のある PHP ファイルを設置されてしまった場合に備えて、system 関数などの OS コマンド実行につながる関数の実行制限をしていたとしても、別の脆弱性を悪用して PHP ファイルのアップロードに成功した攻撃者に制限を回避され、OS コマンドを実行されてしまい侵入されてしまいます。脆弱性対策の強化とアップデートにより対策してください。
◆分析者コメント
攻撃対象となる Web サーバに何か別の脆弱性や設定不備が存在し、PHP ファイルをアップロード可能であるという前提条件が必要となる脆弱性です。PHP の disable_functions の設定により、system 関数や shell_exec 関数などの制限による OS コマンドの実行に対策していたとしても、当該脆弱性を悪用して OS コマンドが実行されてしまうため、攻撃者に侵入されてしまう危険性があります。前提条件が必要な脆弱性であるため悪用には難しいですが、PHP のバージョン 7 系は幅広く影響を受ける脆弱性であるため、多層防御を強化するために PHP のアップデートによる対策を推奨します。
◆深刻度(CVSS)
本記事執筆時点(2019 年 10 月 8 日)では CVE 番号が発番されておらず、脆弱性に対応したバージョンが公開されていません。
◆影響を受けるソフトウェア
以下のバージョンの PHP が脆弱性の影響を受けると報告されています。脆弱性に対応したエクスプロイトコードは Unix/Linux 版の PHP にのみ対応していますが、Windows で脆弱性が悪用できないかという情報は、本記事執筆時点(2019 年 10 月 8 日)では確認できていません。
+ PHP 7.0 - 7.0.33
+ PHP 7.1 - 7.1.31
+ PHP 7.2 - 7.2.23
+ PHP 7.3 - 7.3.10
◆解説
プログラミング言語 PHP のガベージコレクタに、unserialize 関数と組み合わせた場合に発現する、Use-After-Free の脆弱性が報告されています。