攻撃者がWordPressのCVE-2026-87902を公開から数時間で悪用
攻撃者は、WordPressの重大なセキュリティ脆弱性CVE-2026-87902を公開から数時間以内に悪用し始めました。この脆弱性は、認証されていない攻撃者がリモートコード実行(RCE)を取得できる可能性があります。WordPressのアドバイザリーによると、特定の条件が満たされると、攻撃者は選択したローカルのPHPファイルを含めることができ、これがRCEにつながる可能性があります。Previdianのデータによると、2026年9月23日以降、68件の悪用試行が記録されており、攻撃者は特定のPHPファイルを使用してサーバーに書き込みを行っています。ウェブサイトの管理者は、早急にWordPressの最新バージョンにアップデートすることが推奨されています。
メトリクス
このニュースのスケール度合い
インパクト
予想外またはユニーク度
脅威に備える準備が必要な期間が時間的にどれだけ近いか
このニュースで行動が起きる/起こすべき度合い
主なポイント
- ✓ CVE-2026-87902は、認証されていない攻撃者によるリモートコード実行を可能にする重大な脆弱性です。
- ✓ 攻撃者は、特定の条件を満たすことで、サーバー上のローカルPHPファイルを悪用しています。
社会的影響
- ! この脆弱性の悪用により、多くのウェブサイトが危険にさらされる可能性があります。
- ! 特に中小企業のウェブサイトは、セキュリティ対策が不十分な場合が多く、影響を受けやすいです。
編集長の意見
解説
未認証RCEが数時間で実戦投入──WordPress「CVE-2026-87902」が突きつける運用の盲点
今日の深掘りポイント
- 公開から「数時間」で悪用が始動。攻撃者のTTE(time-to-exploit)の短縮は、周辺対策の遅延を許容しない段階に入っています。
- 脆弱性は「条件が揃うとローカルPHPを任意にインクルード」できるタイプ。LFIからRCEへの常套手段(ログ・ポイズニング、アップロード領域の悪用、既存PHPの悪用)に直結しやすい設計上の負債が露呈しています。
- ベンダ計測で公開翌日から少なくとも数十件規模の試行が観測。ボット化した自動探索・即時投下の“長い尻尾”が中小サイトに降りかかる構図です。
- 攻撃後はWebシェル常駐化と「wp-config.php」からの認証情報吸い上げが定番。CMS侵害が境界内の横展開・クラウド資産流出の起点になることを前提に運用を再設計すべきです。
- いま必要なのは、更新だけでなく「仮想パッチ(WAF)」「PHP実行域の分離」「アップロード領域の実行禁止」「改ざん検知」の四点セットによる直ちに効く運用介入です。
はじめに
WordPressの重大脆弱性「CVE-2026-87902」が公表後まもなく現実の攻撃に転じ、未認証でのRCE(リモートコード実行)が観測され始めています。提供データによると、2026年9月23日以降に少なくとも68件の悪用試行が記録され、攻撃者は特定のローカルPHPファイルを取り込み、サーバーへの書き込みまで到達している例があるとされます。世界で最も普及したCMSの「長い裾野」を前に、公開から適用までのわずかな遅延が被害拡大の決定打になることを、あらためて突きつけられた格好です。
本稿は、公開情報とベンダ観測の範囲から得られる事実を整理しつつ、攻撃者の手筋、運用側のどこにボトルネックがあるのか、そして今この瞬間にできることを具体化していきます。
深掘り詳細
事実関係(いま起きていること)
-
脆弱性の性質
- CVE-2026-87902は、未認証のリモート攻撃者が特定条件下で任意のローカルPHPファイルをインクルードでき、RCEに至る可能性があると報じられています。条件依存であるものの、満たされた場合の影響は全面侵害に直結します。
- 背景説明では「テーマディレクトリ外のPHPを含め得る」挙動が示唆されており、通常は境界として働くはずのテーマ領域が突破される点が本質的なリスクです(要するに、誤って“安全”と見なした範囲外からコードが混入し得る、ということです)。
-
攻撃の進展
- 公表から数時間でエクスプロイトが観測され、9月23日以降に少なくとも68件の試行が報告されています。自動化スキャナと即時悪用の連携が既定路線化している兆候です。
- 攻撃者は「特定のPHPファイル」を足掛かりにサーバへの書き込みに成功するケースがあるとされ、Webシェル設置や永続化(wp-cron悪用、オプション改ざん)に移行した可能性が示唆されます。
-
推奨
- WordPressの最新バージョンに速やかに更新することが推奨されています。更新のみで塞ぎ切れない“運用の穴”が残る前提で、補助的な防御も同時投入すべきフェーズです。
出典(二次情報):
編集部のインサイト(なぜ危ないのか)
- 「条件依存」は安全ではない、という教訓です。LFI型の脆弱性は、それ単体でRCEにならない場合でも、以下の“RCEブリッジ”が現場で実用化されています。
- ログ・ポイズニング(アクセスログへPHPペイロードを書き込み、当該ログをローカルインクルード)
- アップロード領域に残存しているPHPファイル(過去のインシデントや不適切な設定の置き土産)
- 既存のPHPライブラリの副作用トリガ(PHAR/ストリームラッパ悪用など、これは仮説です)
- 公表から悪用までの「時間圧縮」が常態化しました。いまの現場に必要なのは、「パッチ配信の自動化」と「自動化に乗れない資産への仮想パッチ(WAF)」をワンセットで回す運用設計です。片方だけでは、ゼロデイに近いスピード感に追いつけません。
- メトリクス的な観点では、緊急性・発生確率・行動可能性がいずれも高位で、反面ポジティブ要素は乏しい情勢です。つまり「すぐ動けば抑えられるが、遅れれば長期に燃え続ける」典型の案件です。SOCは監視クエリとハント手順を“今日中に”配備する価値があります。
脅威シナリオと影響
以下はMITRE ATT&CKに沿った仮説シナリオです。特定の事例に依存しない一般化された想定として提示します。
-
シナリオA:コンテンツ改ざんと継続的なプロパガンダ配信
- Initial Access: Exploit Public-Facing Application(T1190)
- Execution: Command and Scripting Interpreter(T1059)/ PHP経由の任意コード実行(一般化)
- Persistence: Server Software Component: Web Shell(T1505.003)、Scheduled Task/Job(T1053.003, cronやwp-cronを悪用)
- Defense Evasion: Obfuscated/Compressed Files and Information(T1027)
- Impact: Defacement(T1491.001)
- 影響の勘所:選挙期の情報操作やブランド毀損。CDNキャッシュとRSS/メール配信が“増幅器”として働きます。
-
シナリオB:eコマースに対する決済スキミング(WooCommerce等)
- Initial Access: T1190
- Persistence: T1505.003(テンプレートやプラグインにスキマ挿入)
- Collection: Input Capture(T1056, 一般化)/ フォーム改ざんによるカード情報吸い上げ(仮説)
- Exfiltration: Exfiltration Over Web Service(T1567)
- 影響の勘所:PCI DSS違反、チャージバック、法的・規制対応コストの増大。
-
シナリオC:境界内横展開の足場化
- Initial Access: T1190
- Credential Access: Unsecured Credentials: Credentials In Files(T1552.001, wp-config.phpのDB認証情報)
- Discovery: System Information Discovery(T1082), Network Service Discovery(T1046)
- Lateral Movement: Valid Accounts(T1078)/ DBや社内Gitへ再利用(仮説)
- Impact: Data Encrypted for Impact(T1486)/ データ流出・破壊
- 影響の勘所:Webサーバ侵害が「内側の本丸」への序章になり得る現実。セグメントを跨いだ資格情報の使い回しは致命傷になります。
参考(フレームワークの一次情報):
- MITRE ATT&CK: Exploit Public-Facing Application (T1190)
- MITRE ATT&CK: Web Shell (T1505.003)
- MITRE ATT&CK: Command and Scripting Interpreter (T1059)
- MITRE ATT&CK: Credentials In Files (T1552.001)
セキュリティ担当者のアクション
「いますぐ」「24時間以内」「72時間以内」で優先順位を分けた現実的な手順を示します。仮説を含む箇所は明記しています。
-
いますぐ(ゼロデイ窓を閉じる)
- WordPressコアを最新へ更新。大規模運用はWP-CLIで一括更新:
- wp core update; wp plugin update --all; wp theme update --all を標準化します。
- 自動更新を“メジャー含めて”有効化する方針を検討します(WP 5.5以降はプラグイン/テーマもUIで自動更新可)。運用ポリシー上の例外はWAFと監視でカバーします。
- 仮想パッチ(WAF)を即時適用
- 汎用ルールでの当面防御(誤検知に留意、徐々にチューニング):
- クエリに .php を含み、かつ不自然なパラメータ名(include|load|template|file 等)を伴うリクエストをブロック
- ディレクトリトラバーサル(../)、ストリームラッパ(php://, phar://, data://)の検出で遮断
- 例(Cloud WAFの表現例): (http.request.uri.query contains ".php" and regex_match(http.request.uri.query, "(?i)(include|load|template|file)")) or regex_match(http.request.uri.query, "(?i)(../|php://|phar://|data://)")
- ModSecurity/OWASP CRS を導入・有効化し、930120(パス・トラバーサル)系と932100(RCEインジェクション)系を重点適用します(製品によりIDは異なります)。
- 汎用ルールでの当面防御(誤検知に留意、徐々にチューニング):
- PHP実行域の即時分離
- アップロード領域でのPHP実行を禁止(Nginx例):
- location ~* ^/wp-content/uploads/.*.php$ { deny all; }
- Apache系は .htaccess で php_admin_flag engine off を uploads 配下に適用します。
- アップロード領域でのPHP実行を禁止(Nginx例):
- エッジキャッシュの一時無効化(選別的)
- 改ざん検知・復旧を早めるため、認証不要の動的ページは一時的にキャッシュを抑制します(SLAと相談のうえ選別的に行います)。
- WordPressコアを最新へ更新。大規模運用はWP-CLIで一括更新:
-
24時間以内(侵害有無のファスト・ハント)
- ログ探索の即行クエリ(例)
- access.log: “.php”を含む不自然なクエリパラメータ
- grep -E "(?|&)(include|load|template|file)=[^ ]*.php" access.log
- grep -Ei "(php://|phar://|data://|../)" access.log
- 新規/最近更新PHPファイルの棚卸し
- find /var/www/html -type f -name "*.php" -mtime -2 -ls
- wp-content/uploads 配下に .php が存在しないかを優先チェック
- 永続化の痕跡
- 不審な wp-cron ジョブ(wp_options の cron エントリ)や、管理者権限ユーザの新規作成
- access.log: “.php”を含む不自然なクエリパラメータ
- 重要ファイルの改ざんチェック
- wp-config.php(DB資格情報、認証用Salt/Keyの漏洩リスク)、.htaccess/nginx.conf、index.php、wp-settings.php
- wp_options の siteurl/home, active_plugins に不審値がないか
- もし侵害の疑いがあれば(仮説も含む)
- 直ちにWeb公開を遮断→フォレンジック保全→wp-config.phpの全Secrets/DBパスワード/外部連携キーをローテーション→WordPressのAUTH_KEY/SALTを再生成→未知の管理者・SSH鍵の除去まで一息で完結させます。
- ログ探索の即行クエリ(例)
-
72時間以内(再発防止の構造化)
- 「不要PHPの削除」と「最小実行面積の徹底」
- テーマ/プラグインの“無効化”ではなく“削除”を原則に。子テーマやテスト用スクリプト、ベンチマーク用PHPを棚卸しします。
- 自動更新と段階的展開
- ステージング→カナリア→本番の3段ロールアウト。失敗時に即時ロールバックできるバックアップ設計を並行整備します。
- 権限・分離
- WebとDBの資格情報分離、WP用DBユーザに最小権限、S3等外部ストレージ鍵の作用域を限定します。WP-CLI用OSユーザもchroot/権限分離します。
- 構成ハードニング(一次情報の基本原則に準拠)
- DISALLOW_FILE_EDIT を true(管理画面エディタ禁止)
- ファイル権限を原則 640/750、所有者は分離
- セキュリティプラグインは「改ざん検知と整合性検査」を重視(wp core verify-checksums を定期実行)
- 参考: Hardening WordPress(公式ドキュメント)
- 「不要PHPの削除」と「最小実行面積の徹底」
-
SOC視点の持続的監視
- 検知ルール
- Webシェル疑い(POSTかつ Content-Type: multipart/form-data で .php 直叩き//wp-admin/admin-ajax.php への高頻度POSTで不可解なaction)
- base64_decode/str_rot13/eval/assert 等を含む新規PHPの生成
- wp-cron.php の不規則トリガと外部への大量HTTP
- 脆弱性管理
- WordPressコア/プラグイン/テーマのSBOMを整備し、CVE→資産回答の経路を可視化します。自動更新に乗らない商用テーマや独自プラグインのパッチ・ガバナンスを明文化します。
- 検知ルール
-
経営・広報の観点
- 万一の改ざん時は、タイムラインと影響範囲(どのページ、どの期間、どの配信チャネル)を即時に社外説明できる準備をします。選挙期・大型キャンペーン期は“改ざん検知+手動凍結”の運用ルールを前倒しで適用します。
—
最後に、今回のメトリクスの含意を一言でまとめます。緊急性と発生確率が突出して高い一方、ニュースとしての新規性は必ずしも高くありません。これは裏返せば、攻撃者にとって“儲かる常道”であり続けている、ということです。だからこそ運用側も“常道で勝つ”設計が必要です。更新のオートパイロット化、WAFによる仮想パッチ、実行面の絞り込み、そして改ざん検知。この四点セットを今日入れて、明日も残す。派手さはないですが、燃えにくい現場はこうして作るのだと思います。
背景情報
- i CVE-2026-87902は、WordPressのテーマディレクトリ外にあるPHPファイルを含めることができる脆弱性です。この脆弱性は、特定のサーバー環境とアクティブなテーマが必要です。
- i 攻撃者は、特定のPHPファイルを使用してサーバーに書き込みを行い、リモートコード実行を試みています。これにより、サーバーが完全に制御される可能性があります。