WordPress 正規プラグインを介した攻撃:8 ヶ月間にわたり検知を回避したバックドア

Trusted WordPress Plugins Hijacked in 8-Month Stealth Backdoor Campaign

2026/04/15 gbhackers — 30 以上の人気 WordPress プラグインにリモート・コード実行 (RCE) バックドアを密かに仕込んだハッカーたちが、約 8 ヶ月間の休眠後にマルウェアを起動して wp-config.php を書き換え、隠蔽 SEO スパムを注入するという、大規模なキャンペーンを展開している。このインシデントは “Essential Plugin” と呼ばれるプラグイン群に関連している。このポートフォリオは、スライダー/カウントダウン・タイマー/FAQ/ギャラリーなどの機能を提供する、30 以上の無料プラグインと有料エクステンションで構成されている。

WordPress.org が “Countdown Timer Ultimate” に対して管理画面にセキュリティ通知を表示し、不正なサードパーティ・アクセスを可能にするコードの存在を警告したことで、この異変が発覚した。防御側が完全なセキュリティ監査を実施した時点において、すでに WordPress.org は当該プラグインをバージョン 2.6.9.1 へ強制更新していたが、それによる侵害はコア・コンフィグ・ファイルにまで拡散していた。

anchor のレポートが指摘するのは、信頼されていたプラグイン・ベンダーに対する悪意の買収により、8 年間にわたり運用されてきた正規事業が、数十万のサイトに影響を与えるサプライ・チェーン攻撃へと転換したことだ。

wpos-analytics モジュールが “analytics.essentialplugin.com” に通信し、”wp-comments-posts.php” という偽のコア・ファイルを取得して、”wp-config.php” に大規模な PHP ペイロードを注入していたことが、フォレンジック分析の結果として判明した。注入されたコードにより、C2 サーバからスパムリンク/リダイレクト/偽ページが取得され、それらを Googlebot のみに表示することで、サイト管理者に検知されることなく検索結果を汚染していた。

8 ヶ月後に武器化された RCE

履歴バックアップのタイムライン分析により特定されたのは、”wp-config.php” へのコード注入が、2026年4月6日前後の約 7 時間の間に実行されたことだった。その一方で、900 以上のプラグイン・スナップショットの詳細分析により判明したのは、2025年8月8日に公開されたバージョン 2.6.7 において、すでにバックドアが仕込まれていたことだ。この変更は、”WordPress version 6.8.2 との互換性確認” として記録されていたが、実際に追加されていたのは約 191 行の PHP コードだった。

追加されたコードの内容は、以下の通りである。

  • fetch_ver_info() メソッド:攻撃者が制御するデータを取得し、そのまま unserialize() に渡す処理。
  • version_info_clean() メソッド:外部データから渡された関数名を、任意の引数を伴って実行する任意関数呼び出し。
  • 未認証 REST API エンドポイント:permission_callback を常に許可する。

このバックドアは、約 8 ヶ月間にわたり休眠状態にあり、2026年4月5日〜6日にかけて C2 がペイロード配信を開始した時点で有効化された。ただし、攻撃者はテイクダウンを回避するために、C2 ドメインを Ethereum のスマート・コントラクト経由で解決し、インフラをローテーションしながら感染サイトの制御を維持していた。

サプライ・チェーン攻撃の背景

Essential Plugin は、2015 年にインド拠点のチームにより、“WP Online Support” として立ち上げられた。2021 年のリブランドを経てプラグイン数は 30 以上に拡大したが、2024年末までに収益が約 35 〜 45% 減少したことで、創業者 Minesh Shah は Flippa に事業売却を掲載した。

2025年の初頭に、SEO/暗号資産/オンライン・ギャンブル分野の経歴を持つ “Kris” と名乗る買収者が、この事業を数十万ドルで取得した。しかし、その数か月後に WordPress.org に新しい essentialplugin アカウントが作成され、作者情報が変更された。そして、2025年8月8日の最初の SVN コミットにおいて、unserialize() を用いた RCE バックドアが追加された。この変更内容は、単なる互換性チェックであると偽装されていた。

WordPress.org の緊急対応

この攻撃が発覚した直後に、WordPress.org Plugins Team は迅速に対応し、Essential Plugin に関連する 31 件のプラグインを永久停止し、作者のプロファイルを表示不可にした。続いて、2026年4月8日の時点で、強制自動更新 (v2.6.9.1) を配信して任意関数呼び出しのコメント・アウトや通信処理の無効化を行った。

しかし、この修正は、上位ディレクトリに位置する “wp-config.php” を対象としていなかった。それにより、すでに侵害されたサイトでは、Googlebot に対する隠蔽 SEO スパムが継続的に配信されていた。セキュリティ研究者たちが推奨するのは、wpos-analytics モジュールを完全削除した修正版を公開し、”wp-config.php” のサイズおよび内容を、正常なバックアップと比較することだ。

過去の事例と構造的な問題

この種の攻撃は初めてのことではない。2017年には “Daley Tias” と名乗る攻撃者が、Display Widgets プラグインを買収してペイデイローン・スパムを注入し、同様の手法で少なくとも 9 件のプラグインを侵害した。

今回の Essential Plugin インシデントは、数十万のインストールを誇る 30 以上のプラグインを正式に買収してバックドアを埋め込むという点で、攻撃の規模が大幅に拡大している。セキュリティ専門家たちが指摘するのは、このインシデントが WordPress エコシステムにおける信頼モデルの欠陥を露呈したことだ。

具体的に挙げられるのは、所有権変更後のコード・レビュー制度が存在しない点/プラグイン売却時のユーザー通知義務がない点/新規コミッター追加時の自動セキュリティ審査が存在しない点である。

このバックドアが、8ヶ月間にわたり検知されなかった事実が示すのは、プラグイン・マーケットおよび公開 M&A が容易に悪用され得ることである。ガバナンス/監視/レビュー体制の強化なしには、同様の攻撃が今後も成立する可能性が高い。