人気WordPressプラグインベンダーのBdThemesがサプライチェーン侵害を受け、攻撃者がプラグインのコードを一切書き換えることなく、対象サイトに不正な管理者アカウントを密かに作成し、Webシェルをインストールできる状態になっていたことが判明しました。
Wordfence Teamは2026年8月7日にこのキャンペーンについて警告を受け、影響を受けたプラグインはすべて調査完了まで公式WordPressリポジトリから取り下げられています。
従来型のプラグインサプライチェーン侵害とは異なり、公式WordPressリポジトリ上のソースコード自体は一切改ざんされていませんでした。
代わりに攻撃者は、Element Pack、Prime Slider、Pixel Gallery、Ultimate Post Kit、Ultimate Store Kit、Live Copy Paste、Smart Admin Assistantといった複数のBdThemes製プラグインで使われている社内向けプロモーションバナーシステム「Biggopti」が取得する静的JSONデータストリームを汚染しました。
Biggoptiスクリプトは、ログイン中の管理者がwp-adminの各ページを読み込むたびに実行され、DigitalOcean Spacesのバケットからバナーデータを取得します。
2026年3月1日にリリースされたPrime Slider v4.1.9で導入されたdisplay_idフィールドの処理にはクロスサイトスクリプティングの欠陥があり、隣接するフィールドは適切にサニタイズされていた一方で、HTMLのid属性はエスケープされないまま残されていました。
ベンダーのストレージバケットへの書き込み権限を取得した攻撃者は、この隙を突き、onanimationstartイベントハンドラ経由で発火する悪意あるペイロードを注入しました。このペイロードはページ読み込みから10ミリ秒以内に発火します。
発火すると、注入されたスクリプトは管理者の認証済みブラウザセッション内で多段階の攻撃を実行します。
まずia-cdn[.]comにあるコマンド&コントロール(C2)サーバーと通信して攻撃対象の指示を受け取り、続いてアクティブなセッションのREST APIノンスを使って新しい管理者アカウントを密かに作成します。
次に、「wp-smart-thumbnails」といった無害を装うスラッグ名を使って、偽装したプラグインのZIPファイルをアップロードします。このZIPファイルにはemer-run.phpという名前のWebシェルが含まれています。
このWebシェルは、永続化のために2025年9月付けに日付を偽装した2つのMust-Useプラグインをインストールします。1つは?_wplogin=というURLトークンを使って未認証のまま管理者権限でのアクセスを許可するマジックログイン型のバックドア、もう1つは不正アカウントを管理者ユーザー一覧から隠すステルスモジュールです。すべての結果はnavigator.sendBeaconを介してC2サーバーへ送信されます。
BdThemes自身のインフラ上に直接ホストされていた二次ペイロードは、被害者ごとのホスト名から数学的に導出される決定論的な管理者認証情報を生成し、bd_という接頭辞に続けてbase36ハッシュを付けたユーザー名を作り出します。
この決定論的な仕組みにより、攻撃者は被害者リストを一元管理する必要がなくなる一方で、防御側にとってはインシデント対応の際に狙いやすい規則性を与えることにもなります。
Wordfenceの分析によると、このC2インフラは、最近発生したAdvanced Responsive Video Embedderのバックドア事案や、ここ2カ月の間に起きたOptinMonsterおよびTrustPulseのスクリプト改ざん事案と同一の脅威アクターによるものだとみられています。
悪意あるJSONやJavaScriptがBdThemes自身のストレージバケットに直接アップロードされていたという事実は、サードパーティCDN側の問題ではなく、ベンダーのクラウド認証情報や社内インフラそのものが深刻に侵害されたことを示しています。
Wordfence Premium、Care、Responseの各顧客および有料版Wordfence CLIユーザーには2026年8月7日に検知シグネチャとWAFルールが提供された一方、無料ユーザーへの提供は通常の30日間の遅延を経て行われる予定です。
両方の汚染されたAPIエンドポイントは、8月8日時点で正常なJSONを返す状態に復旧したと報告されています。影響を受けたBdThemes製プラグインを稼働させているサイト管理者は、直ちにユーザー一覧を確認し、@wordpress.orgのメールアドレスやbd_接頭辞のユーザー名を持つアカウントがないかを調べ、mu-pluginsディレクトリ内に見覚えのないファイルがないかを点検し、さらにデータベース内にこのキャンペーンに関連するfz_emer_login_tokensおよびfz_emer_done_v1のオプションが存在しないかを確認することが求められます。
ANY.RUNのブラウザ内データ検査で、検知・調査・対応をより迅速に。フィッシングの可視性を高めてSOCを強化し、MTTRを削減しましょう
翻訳元: https://cyberpress.org/bdthemes-wordpress-supply-chain-attack/