比較

PHP2Shell と Log4Shell の比較

どちらも、インターネットの大部分の下で動くソフトウェアにおける認証不要のリモートコード実行です。大きな違いは、Log4Shell は悪用が簡単で発見が難しかったのに対し、PHP2Shell は悪用が難しく発見しやすいことです。

最終確認 2026-10-22

PHP2ShellLog4Shell
概要PHP インタープリタの 2 つのメモリ安全性のバグJava のログライブラリ Log4j 2 における JNDI ルックアップのインジェクション
CVECVE-2026-109618、CVE-2026-109619CVE-2021-44228(と後続の CVE)
公開日2026 年 10 月 21 日(10 月 20 日に漏えい)2021 年 12 月 9 日(同日にエクスプロイトが公開)
スコアCVSS 4.0 9.2CVSS 3.1 10.0
認証不要不要
悪用の難しさ難しい:細工した multipart リクエストを、試行を繰り返して標的ごとのメモリ配置に合わせる簡単:${jndi:ldap://…} のような文字列がログに記録される場所にあるだけ
影響範囲脆弱な PHP で動くすべてのサイト——Web の大部分Log4j 2.0–2.14.1 で攻撃者の入力をログに記録するすべての Java アプリ——サーバー、アプライアンス、ゲーム
影響を受けるシステムの洗い出し比較的簡単:PHP 実行環境そのものなので、サーバーやコンテナごとにバージョンを確認すればよい難しい:Log4j は推移的な依存関係として JAR やベンダー製品の中に隠れていた
修正PHP を更新してワーカーを再起動Log4j を更新(2.15 → 2.16 → 2.17 と複数回)し、影響を受けるアプリをすべて再ビルド
誰が直すかサーバーを管理する人:あなた、ホスティング会社、クラウド事業者Log4j を同梱したすべてのベンダーと、そのアプリを動かすすべての人
攻撃の状況公開当日に初期の攻撃が報告。侵害が確認された公開事例はまだない数時間で大規模な悪用。CISA KEV に掲載
RCE なしでのデータ窃取可能——メモリ漏えいの経路間接的に可能(DNS ルックアップで環境変数を流出)

共通点

  • ログインもユーザー操作も不要——ネットワークリクエストだけ。
  • ほとんどの運営者が意識しない基盤ソフトウェアのため、多くのシステムが長期間未修正のまま残る。
  • アプリケーションを更新しても効果がない。脆弱なのはその下の層。

相違点

  • 悪用の手間。Log4Shell はコピペできる文字列でしたが、PHP2Shell は標的ごとに調整が必要なメモリ破壊のチェーンです。最初は少数の高度な攻撃者が中心で、信頼できるツールが広まると悪用が一気に広がると考えられます。
  • 棚卸し。「どのサーバーで PHP が動いていて、バージョンは何か」は数時間で答えられます。Log4j の洗い出しには、多くの組織が数週間を要しました。
  • ロングテール。PHP のロングテールは、共有ホスティングと、PHP 7.x や 8.0/8.1 のまま放置されたサーバーです。これらには新しいリリースが出ません。

よくある質問

PHP2Shell は Log4Shell と同じくらい深刻ですか?+

影響範囲は同程度で、最悪の結果(認証不要のリモートコード実行)も同じですが、悪用はより困難です。Log4Shell はログに残るどの項目でも文字列 1 つで成立しましたが、PHP2Shell のエクスプロイトは標的ごとに調整が必要です。また PHP2Shell は PHP 実行環境にあり、アプリの依存関係に隠れていないため、棚卸しも修正も容易です。

Log4j 向けの修正やスキャナーは PHP2Shell に役立ちますか?+

役立ちません。両者は無関係です:Log4Shell は Java のログライブラリ、PHP2Shell は PHP インタープリタの問題です。スキャナーも修正方法も異なります。

関連ページ