OWN NEWS GATHER
← 戻る
The Hacker News

WordPressプラグインベンダーBdThemesがサプライチェーン攻撃被害、API悪用で遠隔から管理者権限を奪取される恐れ

要点

  • WordPress向け人気プラグインの開発元BdThemesがサプライチェーン攻撃を受け、公式ディレクトリでの配布が一時停止された。

  • プラグイン自体のソースコードは改変されず、管理画面で外部から取得するバナー用JSONデータを改ざんする手口が用いられた。

  • JSON解析処理のXSS脆弱性を悪用し、管理画面にアクセスした管理者のブラウザ上で不正スクリプトを自動実行させる仕組みだった。

  • 攻撃スクリプトは不正管理者アカウントの作成、Webシェルの配置、認証不要のバックドア設置、アカウント隠蔽処理などを実行する。

  • 被害サイトのホスト名から規則的に管理者用ログイン情報を生成する別のペイロードも確認されている。

  • WordPress向けセキュリティサービスを提供するWordfenceの研究者は、プラグイン開発ベンダーであるBdThemesの製品群がサプライチェーン攻撃を受けたと報告した。これを受けてWordPressの公式プラグインチームは、関連プラグインの新規ダウンロードを一時的に停止する措置を講じている。今回の攻撃は、公式リポジトリ上のソースコードを一切改ざんすることなく、外部APIから配信されるデータのみを汚染して不正操作を行う点が特徴だという。

影響を受けるプラグインと配布停止措置

Wordfenceの報告によると、今回の問題の影響を受けるのはBdThemesが提供する複数のプラグインである。10万件以上のアクティブインストール数を誇る「Element Pack Addons for Elementor」をはじめ、「Live Copy Paste for Elementor」や「Ultimate Store Kit」(それぞれ6,000件以上の有効インストール)、さらに「Pixel Gallery Addons for Elementor」「Prime Slider Addons for Elementor」「Smart Admin Assistant」「Ultimate Post Kit Addons for Elementor」などが対象に含まれている。

現在、WordPress公式のプラグインディレクトリ上でこれらのプラグインページにアクセスすると、2026年8月7日または8日付けで公開が停止されており、全面的なレビューが完了するまでダウンロードできない旨の警告が表示される状態になっている。

ソース改ざんを伴わない「外部JSON汚染」の手口

今回のサプライチェーン攻撃について、Wordfenceの研究者パオロ・トレッソ(Paolo Tresso)氏は、従来のソフトウェアサプライチェーン攻撃とは大きく性質が異なると指摘している。WordPress.orgの公式リポジトリに保存されているソースコード自体には一切の改変が加えられておらず、プラグインのアップデートやディスク上のファイル書き換えを必要としないまま攻撃が成立していた。

攻撃の起点となったのは、プラグインに内包されていた「Biggopti」という内部コンポーネントである。この仕組みは、管理画面上にプロモーション用バナーを表示するために設計されたもので、APIサーバーを通じてクラウドストレージ(DigitalOcean Spacesバケット)から静的なJSONファイルを取得・展開する役割を担っていた。

しかし、Sigmative APIから受け取ったJSONレスポンスを処理するコードにおいて、display_id パラメータに対するクライアント側のエスケープ処理が不十分であったため、クロスサイトスクリプティング(XSS:Webページに悪意あるスクリプトを注入・実行させる脆弱性)の欠陥が存在していた。この脆弱性のCVSSスコアは中程度の深刻度を示す「5.4」と評価されている。

攻撃者はこのクラウドストレージへの書き込み権限を不正に取得し、正規のJSONレスポンスを悪意あるペイロードに差し替えた。これにより、管理画面(wp-admin)が読み込まれるたびに、ログイン中の管理者のブラウザ内で不正なスクリプトが静かに実行される状態が作り出されていたという。このバナー取得処理の変更は、2026年3月1日に「bdthemes-prime-slider-lite」へ導入されたのを皮切りに、順次他のプラグインへも展開されていたことが判明している。

管理者権限の奪取と痕跡隠蔽を行う攻撃ペイロード

攻撃者が配信していた主力のJavaScriptペイロード「w2.js」は、APIエンドポイント(api-data-all-records)経由で読み込まれ、管理者のブラウザ上で一連の侵害プロセスを実行する。

まず、スクリプトはC2サーバー(指令サーバー:ia-cdn[.]com/fz/c)へ被害サイトの情報を送信して攻撃指示を取得する。C2サーバーからスキップ等の応答がない場合、WordPressのREST APIを悪用して新しい管理者アカウントを勝手に作成する。

続いて、C2サーバーから偽のプラグインZIPファイルをダウンロードし、管理画面の標準プラグインアップロード機能を使ってインストールさせることで、PHP製のWebシェル(emer-run.php)をサーバー上に配置する。

さらにこのWebシェルを通じて、必須プラグイン(mu-plugins:通常のプラグイン一覧に表示されず自動実行されるプラグイン)ディレクトリへ2種類の永続化モジュールを配備する。
1つは、特定のURLパラメータ(?_wplogin=<token>)を付与してアクセスするだけで、サイト上で最も古くから登録されている管理者の権限を悪用してログインできる「マジックログイン・バックドア」である。
もう1つは、WordPressのデータベースクエリに割り込み、管理画面のユーザー一覧や合計ユーザー数の表示から不正に作成したアカウントを除外して隠蔽する「対解析・ステルスモジュール」である。

ホスト名から認証情報を算出する別ペイロードの存在

加えて、開発者のインフラ上でホストされていた別のペイロード「x.js」も確認されている。こちらはAPIエンドポイント(api-data-records)から配信され、被害サイトのホスト名をもとに数学的な計算を用いて「決定論的(規則的)」な管理者アカウント情報を生成する設計となっていた。

Wordfenceによると、このアルゴリズムは bd_ に6文字のbase36ハッシュを付与したユーザー名と、Bd@26! にハッシュと x を組み合わせたパスワードを生成し、@wordpress.org ドメインのメールアドレスと紐付けるという。攻撃者は侵害したサイトのリストを一元管理して保持する必要がなく、インシデント対応チーム側も対象ドメインが分かれば該当するユーザー名とパスワードを逆算して調査できる仕組みになっていると説明されている。

元URL