PHPの深刻なRCE脆弱性「PHP2Shell」にパッチ予告、設定変更では防ぎきれないと専門家が警告
要点
-
PHPに深刻度スコア9.2のリモートコード実行(RCE)脆弱性「PHP2Shell」が判明し、公式パッチの公開が予告された。
-
回避策として広まった「Session Upload Progress」の無効化設定について、提案したセキュリティ企業が完全な対策にならないと見解を修正した。
-
PHPコア開発者らも設定変更による防御を否定し、唯一の有効な解決策はパッチ適用のみであると強調した。
-
Cloudflareが初期の攻撃試行を観測して緊急ルールを配信した一方、現時点で実被害や有効な攻撃コードは確認されていない。
-
公式パッチの適用までの間、サーバーのアクセス制限や権限の最小化といったリスク低減策が推奨されている。
-
PHPにおいて「PHP2Shell」と呼ばれる2件の極めて深刻な脆弱性が確認され、協定世界時(UTC)の2026年10月21日14:00(日本時間同日23:00)に公式修正パッチが公開されることが明らかになった。パッチ公開に先立ち、ソーシャルメディア等では特定の設定変更による回避策が拡散したが、セキュリティ専門家やPHP開発者らは十分な防御にならないと警告を発している。現在、一部で悪用を試みる動きも観測されており、パッチ公開に向けた準備や露出の制限が呼びかけられている。
深刻度9.2の脆弱性と未公開の詳細
「PHP2Shell」と名付けられた今回の問題は、遠隔の第三者がサーバー上で任意のプログラムを実行できるリモートコード実行(RCE)の脆弱性2件で構成されている。PHPプロジェクトはこの脆弱性の深刻度スコアを10点満点中9.2と極めて高く評価した。
一方で、パッチ公開前の段階において、PHPプロジェクトは独自の一時的な回避策を提示していない。さらに、影響を受けるバージョンや関与する内部コンポーネント、特定の設定変更によって危険性が変化するかどうかといった詳細も明らかにされておらず、修正版のリリースと同時に公表される予定だという。脆弱性の発見者以外の外部関係者が防衛策の有効性を事前に検証できない状況が続いており、現在提示されている対策はいずれも安全を保証するものではなく、リスク低減の手段に留まると説明されている。
拡散した設定変更策とセキュリティ企業の見解修正
公式の回避策が存在しない中、ソーシャルメディアや技術ブログで急速に広まったのが、設定ファイル内の「session.upload_progress.enabled」を無効化(0に設定)する対策だった。これはファイルアップロードの進行状況をセッションに記録して進捗を確認できるようにするPHPの標準機能「Session Upload Progress」を停止するものだ。
東京のセキュリティ企業GMO Flatt Securityは、10月21日早朝にこの設定変更を暫定策として提示し、一定の効果が見込めるとしていた。しかし同社は同日、日本時間14:00(UTC 05:00)の更新でこの見解を修正した。設定変更だけでは完全な解決策にはならず、この設定を迂回する攻撃が予想されると説明している。その上で管理者に対し、パッチ公開前の攻撃トラフィックを監視すること、更新作業の準備を進めること、そして修正版がリリースされた段階で直ちに適用することを求めている。
PHP開発陣が語る緩和策の現実と不確実性
設定変更に対する警鐘は、PHPプロジェクトの内部からも上がっている。PHP Foundationの支援を受けるコア開発者のジーナ・ピーター・バーニャード(Gina Peter Banyard)氏は、アップロード進捗機能の設定変更で防御できるかという質問に対し、「唯一の緩和策はパッチ適用とアップグレードだけだ」と明言した。次期PHP 8.6のリリースマネージャーを務めるジョー・ファーガソン(Joe Ferguson)氏も、「ini設定では救われない」と簡潔に指摘している。
この設定が頼りにならない理由は主に2点ある。第1に、GMO Flatt Securityが迂回手法を予見しつつも具体的な経路を公表していない点だ。第2に、脆弱性が同機能に起因しているという前提自体が推測にすぎない点である。PHP公式はこの関連性を認めておらず、独立した匿名のコード監査では、指摘されているようなバグはリリース版PHPには存在しないとの主張もなされている。真偽は公式コードの公開によって判明するものの、現時点で特定の設定を確実な防壁として扱うべきではない根拠となっている。
業界内の対応差と設定済み環境の扱い
業界内でも対応に温度差が見られる。セキュリティ企業のUpwindは、他者の分析を引用する形で依然としてこの設定を即時緩和策のリストに掲載している。一方、脆弱性の1つを独自に再現したwatchTowrは、「現時点で確認されたパッチや回避策はない」と明言し、慎重な姿勢を崩していない。
なお、すでに設定を無効化した環境について、元に戻す必要はないとされている。ただし、防御策として過信しない注意が伴う。PHPの公式マニュアルでも、進捗バー機能を使用しないアプリケーションにおいては同機能の無効化が以前から推奨されている。保存されるファイル名やフィールド名が検証されない仕様となっており、PHPコードが含まれる恐れがあるためだ。誤って有効にしていた環境でない限り、無効化を維持すること自体に害はない。
悪用試行の観測とパッチまでの防衛手段
攻撃の発生状況に関して、Cloudflareは脆弱性の悪用を試みる初期の試行を観測したとして、パッチ適用までの時間稼ぎとなる緊急防御ルールを配下のサイト向けに配信した。ただし、現時点で実際のシステム侵害は確認されておらず、出回っている公開エクスプロイトコード(脆弱性を悪用する実証コード)の有効性も実証されていない。米国土安全保障省サイバーセキュリティ・インフラセキュリティ庁(CISA)の悪用確認済みカタログにも登録されていない状況だ。
パッチが公開されるまでの間、管理者がリスクを下げる現実的な手段としては、公開されているPHP環境をインターネットから隔離するかアクセス制限下に置くこと、侵害時の影響を抑えるためにアクセス権限を絞ること、そしてパッチが公開された瞬間に即座に適用できるよう準備しておくことが挙げられる。