WordPress REST APIのバッチエンドポイントを狙う探索、当社インフラで3倍超に
10月26日の週、当社インフラに対してWordPress REST APIのバッチエンドポイント(wp2shell脆弱性チェーンの入り口)を要求した送信元の数が、それまでの週平均の3.3倍に増えました。スキャナーはバックアップ、デバッグページ、アプリケーション内部を要求する頻度も高めていました。
291 Interceptは、自動スキャナーが当社自身のインフラで何を狙ったかをまとめる週次レポートです。同じ箇所をご自身のシステムで点検する際にお役立てください。各号は、少なくとも7日前に終了した週を対象としています。
10月26日の週に当社インフラで最も明確だった変化は、WordPressのあるアドレスへのリクエストの急増でした。/wp-json/batch/v1です。約40の送信元がこれを要求しており、直前3週間の週平均の3.3倍にあたります。このエンドポイントはwp2shellの起点です。wp2shellはWordPressコアに存在する2つの脆弱性の連鎖で、ログインしていない攻撃者がサイト上でコードを実行できるようになります。
全体としても活発な週でした。インターネットに公開している当社インフラを探索した送信元はおよそ620で、直前3週間の平均より10%多くなっています。WordPressは引き続き主な標的で、送信元の66%がWordPressのログイン、XML-RPC、プラグインのパスを狙っており、その数は20%増加しました。また、本来は非公開であるべきアプリケーションの部分を要求する頻度も高まりました。
wp2shellとは
/wp-json/はWordPress REST APIのルートで、/wp-json/batch/v1は複数のAPIリクエストをまとめて処理するバッチプロセッサーです。Rapid7によると、wp2shellは2つの脆弱性を組み合わせたものです。CVE-2026-63030はこのバッチプロセッサーのロジックの欠陥、CVE-2026-60137は投稿エンドポイントのSQLインジェクションです。この2つを連鎖させると、アカウントを持たない者がWordPress 6.9.0から6.9.4、および7.0.0から7.0.1でコードを実行できます。
この脆弱性は2026年7月17日に公表され、Rapid7によればCISAが7月21日に既知の悪用された脆弱性カタログ(Known Exploited Vulnerabilities)に追加しました。修正版は6.9.5、7.0.2、7.1 Beta 2です。
修正がすでに出ている脆弱性を、なぜ探るのでしょうか。スキャナーにとっては、すべてのサイトが脆弱である必要はなく、一部で十分だからです。リクエスト1件のコストはほぼゼロで、影響を受けるバージョンのままのサイトが見つかれば、再訪する価値があります。
おなじみのWordPressスキャン
数か国に分散した約20の送信元からなる連携したツールキットが、約10個からなる同じパスのリストを試していました。/wp/wp-includes/wlwmanifest.xml、/shop/wp-includes/wlwmanifest.xml、/wordpress/wp-includes/wlwmanifest.xmlのように同じファイルをさまざまなフォルダー名で要求し、あわせて/xmlrpc.phpも要求していました。
wlwmanifest.xmlはデフォルトのWordPressインストールに含まれるWindows Live Writerのマニフェストで、これをよくあるフォルダー名で要求するのは、プラグインやテーマの脆弱性を試す前にWordPressサイトを見つけ出す手口です。XML-RPCはその次の段階です。2015年、研究者らはそのsystem.multicallメソッドを使うと1回のリクエストで数百のパスワードを試せることを発見しました。
置き忘れファイルと内部情報
直前3週間と比べて、バックアップやダンプファイルを探した送信元の数は73%、Spring Boot actuatorなどのアプリケーション内部を狙った送信元は63%、/phpinfo.phpや/info.phpといった診断ページを要求した送信元は52%増加しました。送信元全体の数も増えたため、割合の変化はそれより小さく、診断ページが全送信元に占める割合は平均15%から21%になりました。下のグラフは今週の6つのカテゴリーについて、今週の送信元の割合を直前3週間の平均と比較したものです。
重複を除いた全送信元のうち、各標的を狙った送信元の割合(%)。1つの送信元が複数の標的を狙う場合があるため、合計は100%を超えます。
| 今週 | 過去3週間の平均 | |
|---|---|---|
| バックアップとデータベースダンプ | 12% | 9% |
| アプリケーション管理用エンドポイント | 13% | 9% |
| デバッグ・診断ページ | 21% | 15% |
| WordPressのログイン画面とファイル | 66% | 61% |
| 公開状態のソースコード(Git、SVN) | 29% | 24% |
| 機密情報ファイルと設定ファイル | 33% | 33% |
/actuator/envには約40の送信元が集まり、それまでの平均の2.4倍でした。Spring Bootでは、このエンドポイントはアプリケーションの設定プロパティを表示します。Springのドキュメントによれば、デフォルトでHTTP経由で到達できるのはhealthのみで、envの値もデフォルトでマスクされます。しかし開発者がアクセス制限をかけずに公開すると、認証情報、APIキー、内部設定が漏えいするおそれがあります。置き忘れられたWordPress設定ファイルのバックアップである/wp-config.php.bakは倍増し、約40の送信元に達しました。
約20の送信元からなる別のツールキットは、こうした関心を1回のスイープにまとめていました。/.env、/.git/config、/info.php、/config.json、/server-status、/debug/default/viewです。最後のパスはYii 2のデバッガーのもので、セッションデータ、環境変数、データベースクエリを表示します。Yiiのガイドでは通常localhostからのみ動作するとされていますが、9月30日に公表されたCVE-2026-103475は、デフォルト設定でデバッガーをすべてのIPアドレスに公開してしまうyii2-starter-kit 4.2.0以前を対象としています。
先週の続報
前号では、サブフォルダー内の.envファイルを探すスキャナーの増加を取り上げました。この傾向は続いています。/v2/.envと/old/.envはそれぞれ約60の送信元を集め、それまでの平均のおよそ2倍となりました。/production/.envは50、/storage/.envは40でした。秘密情報や設定ファイルを狙った送信元は合計200で16%増加しましたが、送信元全体の増加とほぼ歩調を合わせているため、割合は33%で横ばいでした。規模感としては、研究者らが2月に報告したところによると、公開アクセス可能な.env形式のファイルを配信しているIPアドレスは12,088,677にのぼります。
先週トップで取り上げたGitの探索は、割合こそ下がったものの、以前の水準は上回ったままでした。ソースコードリポジトリを探した送信元は合計170で、3週間平均より20%多い一方、全送信元に占める割合は37%から29%に下がりました。
送信元の素性
送信元の半数以上(55%)はクラウドおよびホスティングのネットワークからで、DigitalOceanとGoogle Cloudがそれぞれ20%を占めました。また、全送信元の85%は1日しか現れませんでした。多くは人間を装おうともしていました。82%が一般的なブラウザーを装う文字列を送っていた一方で、85%は自動化ツールのように振る舞っており、偽装は見え透いたものです。
静かになったもの
週平均で約20の送信元があった/wp-content/plugins/hellopress/wp_filemanager.phpへのリクエストは79%減少し、ほぼゼロになりました。スキャナーが関心を移したのかどうかを判断するには時期尚早です。/service-account.jsonなどのクラウドの鍵ファイルは、約70の送信元でほぼ横ばいでした。
対策
- WordPressのバージョンを確認してください。6.9.0から6.9.4、または7.0.0から7.0.1に該当する場合は、ただちに6.9.5または7.0.2に更新してください。
- .envファイルは公開フォルダーに一切置かないでください。古いリリースやバージョン別のサブフォルダーも例外ではありません。安全な置き場所はWebルートの1つ上の階層です。
- バックアップやダンプを削除してください。
/database.sqlや/wp-config.php.bakなどを、ブラウザーから到達できるすべての場所から取り除きます。 - 内部情報を保護してください。Spring Boot actuatorのエンドポイントへのアクセスを制限してenvのマスクは有効のままにし、phpinfoのテストページを削除し、Yiiのデバッガーはlocalhostに限定してください。
- XML-RPCを無効にしてください。サイト上にXML-RPCを必要とする機能がない場合に限ります。
この観測について
本レポートは、291 Groupのセキュリティ監視システムである291 Heat Seeker Oneが作成しています。このシステムは当社独自のセキュリティ運用プラットフォームである291 Crossband上で稼働しています。対象は291 Group自身のインターネットに公開されたインフラへのトラフィックのみです。
数値は概数です。割合と変化はリクエスト数ではなく個別の送信元の数で測定しており、20以上の個別の送信元から観測されたパターンのみを掲載しています。国は送信元のサーバーの所在地であり、運用者の所在地とは限りません。ネットワークの種別は各ネットワークの運用者に基づいて分類しており、名前を挙げるのは大規模で広く知られたプロバイダーのみです。