2025年、WordPress プラグイン「AI Engine」において、認証済みサブスクライバー(Subscriber)権限で悪用可能な脆弱性が報告されました。
この記事では、必要以上に不安を煽らずに、
- どんな仕組みで脆弱性が起きたのか
- どんな点が問題なのか
- なぜこうした脆弱性は発生するのか
- 利用者としてどう対処すべきか
を、解説します。
AI Engine プラグインとは?
まず前提として、対象となるプラグインの概要です。
AI Engine
https://wordpress.org/plugins/ai-engine/
WordPress サイトに AI チャット、コンテンツ生成、画像生成、OpenAI API 連携などの AI 機能を追加できるプラグインです。
記事作成支援や自動タグ生成など、多機能な AI ツールとして人気があります。
今回の脆弱性は、このプラグインの一部の REST API 機能が影響していました。
報告された脆弱性の概要
今回問題となったのは、以下のタイプの脆弱性です。
PHP Object Injection(オブジェクト注入) via PHAR デシリアライズ
聞き慣れない言葉ですが、ここではシンプルにまとめます。
- プラグインの REST API(音声認識や画像処理に関係するエンドポイント)が
- 「サブスクライバー権限」でも呼び出せてしまい
- データの扱い方に問題があり、
- 攻撃者が細工した PHAR ファイルを読み込ませることで
- 本来読み込むべきではない PHP の“オブジェクト”を内部に注入できてしまう
という内容です。
※ サブスクライバーは WordPress の最も弱い権限のひとつで、通常は投稿も編集もできません。
今回のケースは 強力な権限がなくても実行できる「典型的な脆弱性パターン」 と言えるでしょう。
PHP Object Injection(POI)とは?
少しだけ技術的な背景も触れておきます。
PHP では、データを保存・読み込みする際に「シリアライズ/デシリアライズ」という仕組みを使うことができます。
- シリアライズ:オブジェクトを文字列化する
- デシリアライズ:その文字列からオブジェクトを再構築する
この“デシリアライズ”の処理に外部からの入力をそのまま渡してしまうと、悪意あるオブジェクトを注入されることがあります。これが PHP Object Injection です。
PHAR が悪用される理由
PHAR(PHP Archive)は、ファイルを読み込むだけで内部にあるオブジェクトを展開する基本的な機能です。
その性質を悪用し、ファイル読み込みを行うコードに対して攻撃者が細工した PHAR を指定すると、PHPコードを実行することが出来ます。
今回の AI Engine の脆弱性は、このパターンが当てはまります。
POP チェーンについても軽く解説
PHP Object Injection の攻撃は、単にオブジェクトを注入しただけでは終わりません。
悪意ある攻撃者は「POP(Property Oriented Programming)チェーン」と呼ばれる仕組みを利用します。
これは、
- あるクラスのデストラクタ
- あるクラスの __wakeup()
- あるクラスの __toString()
など、
「オブジェクトが破棄される時」「文字列化される時」に自動的に動く“マジックメソッド”を利用し、攻撃向けの一連の処理を組み立てる技術です。
今回の脆弱性報告では、
AI Engine 単体には強力な POP チェーンは確認されていない
とされていますが、
別のプラグインやテーマに POP チェーンが存在する場合は、そこへ繋がる可能性がある
という評価です。
WordPress サイトは複数のプラグインが組み合わさるため、「POP チェーンがどこかに紛れこんでいる」ケースは珍しくありません。このため、攻撃の可能性は排除できないと判断され、脆弱性として公開されました。
なにが問題だったのか?
まとめると、ポイントは次の 3 つです。
1. サブスクライバー権限でも問題のエンドポイントが呼び出せた
→ 弱い権限でアクセスできてしまうため、攻撃難易度が低下。
2. 外部入力を PHAR として扱える状況があった
→ 悪意あるファイルを指定できてしまうと、デシリアライズが起きてしまう。
3. サイト環境によっては POP チェーンが揃う危険性
→ 他のプラグインが POP チェーンを持っていれば、連鎖的に攻撃される可能性。
“この 3 要素が揃うと攻撃につながる”という、典型的なパターンです。
なぜこうした脆弱性は発生するのか?
AI Engine に限らず、WordPress のプラグインはたくさんの機能を提供するため、多くのファイル処理や通信処理を含みがちです。
特に「AI に関連する処理」では、
- 画像アップロード
- 音声ファイル処理
- JSON 変換
- API連携
など、データの出入りが複雑になり、こうした“データの扱いに注意が必要な部分”で脆弱性が生まれやすくなります。
これは WordPress だけでなく、多くの Web アプリケーションでも起きる構造的な問題です。
利用者としてどう対処すべきか
結論は非常にシンプルです。
1. プラグインを最新版にアップデートする
AI Engine の開発者は問題を修正し、最新バージョンで安全に利用できるようにしています。
2. 不要なユーザーアカウントを削除する
サブスクライバー権限でも影響があるため、使っていないユーザーは整理しましょう。
3. 不要なプラグイン・テーマを削除する
POP チェーンが存在するプラグインが減ればリスクも下がります。
4. WordPress の定期更新を習慣化する
今回のような脆弱性は、“発見 → 報告 → 修正 → 公開”という健全なプロセスで管理されます。
アップデートを適切に行っていれば、問題の多くは未然に防げます。
WordPress の脆弱性は「発見 → 修正 → 周知」のフローで安全が保たれる
WordPress には、
セキュリティ研究者 → プラグイン開発者 → WordPress ユーザー
という明確なフローが存在します。
- 脆弱性が発見される
- 開発者に通知される
- 修正版が提供される
- 公開され、利用者にアップデートが促される
これは WordPress が長年維持してきた健全な仕組みです。
今回の AI Engine も、このフローに従って適切に修正が行われています。
まとめ:アップデートすれば安全に使えます
今回の脆弱性は、技術的には典型的な PHP Object Injection の一種です。
権限が弱いユーザーから悪用できてしまう点は注意が必要ですが、すでに修正済みであり、アップデートするだけで解決します。
WordPress を安全に使うために必要なのは、
- プラグイン・テーマ・本体を定期的に更新する
- 不要なユーザーやプラグインを削除する
- セキュリティ情報に軽く目を通す習慣をつける
これだけです。
過度に不安になる必要はありません。
正しく理解して、淡々とアップデートを続けていけば、WordPress は今後も安全に使えます。
参考リンク
- 「AI Engine プラグイン:脆弱性報告(CVE-2025-12844)」 – National Vulnerability Database (NVD)
https://nvd.nist.gov/vuln/detail/CVE-2025-12844 - AI Engine プラグインに関する GitHub Advisory(Authenticated Subscriber → PHP Object Injection via PHAR Deserialization)
https://github.com/advisories/GHSA-qxf4-66fg-4h23 - PHAR デシリアライズ(PHP)という攻撃技術の技術資料:SonarSource ブログ
https://www.sonarsource.com/blog/new-php-exploitation-technique/ - PHAR デシリアライズ攻撃の実例解説:Keysight ブログ
https://www.keysight.com/blogs/en/tech/nwvs/2020/07/23/exploiting-php-phar-deserialization-vulnerabilities-part-1 - PHP オブジェクト注入(PHP Object Injection)/PHAR デシリアライズに関する総合参考:PayloadsAllTheThings リポジトリ
https://swisskyrepo.github.io/PayloadsAllTheThings/Insecure%20Deserialization/PHP/
コメントを残す