AskAnyに認証不要のコード実行脆弱性、修正版2.2.0
WordPressのチャットプラグインAskAnyに、ログイン不要でPHPファイルを置かれてコードを実行される脆弱性があります。2.2.0未満を使うサイトは2.2.0へ更新し、訪問者の添付が有効かどうかも確認してください。
急ぎ度: 至急
CVSS v3は9.8で認証なしにサーバー上でコードを実行され得ますが、修正版2.2.0がすでに公開されているため、実際の悪用の報告が出る前に更新しておく価値が大きいからです。
関係があるか
AskAnyを入れたWordPressサイトのうち、2.2.0未満を使っているものが対象です。顧客向けのサポートチャットや問い合わせ窓口を自社サイトに置いている企業では、公開サイトがそのまま攻撃を受ける位置にあります。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| AskAny(WordPressプラグイン) | 2.2.0未満 | 2.2.0 |
確かめ方
- 1WordPressの管理画面で「プラグイン」を開き、AskAnyが入っているか、版が2.2.0未満でないかを見ます。
- 2WP-CLIを使えるサーバーでは、
wp plugin get askany --field=versionで版を確認できます。 - 3AskAnyの設定で、訪問者によるファイル添付が有効になっているかを確認します。有効なサイトが、この脆弱性でコードを実行される条件に当てはまります。
- 4停止中のプラグインでも、ファイルが残っていれば、念のため更新するか削除するかを決めておきます。
何が起きたか
AskAnyに、チャットに添付されたファイルの検査が足りない脆弱性が見つかりました。ログインしていない人がPHPファイルを送り込み、サイトのサーバー上で任意のコードを実行できてしまいます。
CVE-2026-121497として2026年11月に公表され、WPScanでは2026年11月9日に公開されています。分類はCWE-434で、報告者はRyan Fabella氏です。
原因は、添付ファイルの拡張子も中身も確認せず、ブラウザーが申告するファイルの種類をそのまま信用していることです。申告は送る側が自由に書き換えられるため、検査としては働きません。修正版の2.2.0で対処されています。
攻撃の流れ
-
1
チャットに添付
サイトのチャット機能に、訪問者としてファイルを添付して送ります。
-
2
検査をすり抜け
プラグインがブラウザー申告のファイルの種類を信用し、PHPファイルが受け入れられます。
-
3
PHPが保存される
サーバー上に、実行できる形でPHPファイルが置かれます。
-
4
コード実行
置かれたファイルが動き、サーバー上で任意のコードが実行されます。
どう悪用されるか
攻撃にアカウントは要りません。インターネット越しにサイトへ到達できれば、利用者の操作を待たずに試せます。CVSSのベクターでも、ネットワーク経由・認証不要・利用者の操作不要・攻撃の複雑さは低いと評価されています。
前提になるのは、AskAnyで訪問者の添付が有効になっていることです。
成功すると、Webサーバーの権限でコードが動きます。機密性・完全性・可用性のいずれにも大きな影響が出うるため、CVSSの評価は9.8です。サイトの改ざん、データベースの読み出し、別の不正ファイルの設置などが考えられます。
今すぐやること
-
1
AskAnyを2.2.0に更新する
管理画面かWP-CLIで更新します。本番に直接当てにくい場合は、検証環境で動作を確かめたうえで、同じ日のうちに反映する段取りにします。
wp plugin get askany --field=version -
2
訪問者の添付が有効か見直す
更新が済むまでの間、必要がなければ無効にします。更新後も、業務で本当に要る機能かを確認します。
-
3
見覚えのないPHPファイルを探す
更新前に公開されていた期間があるため、アップロード用のディレクトリーに本来あるはずのないPHPファイルがないか調べます。あわせてWebサーバーのアクセスログで、チャットの添付に関する不審な送信がないかも見ます。
find wp-content/uploads -name "*.php" -
4
痕跡が見つかったら侵害として扱う
ファイルを消すだけで終わらせず、管理者パスワード、データベースの接続情報、wp-configのキーを入れ替えます。ほかに設置されたファイルがないかも調べ、必要なら正常な時点のバックアップから戻します。
-
5
開発元の告知を確認する
AskAnyの開発元が出している告知や更新履歴で、2.2.0の変更内容と、訪問者の添付に関する設定の扱いを確かめます。
すぐ更新できないとき
更新がすぐにできないときは、AskAnyで訪問者の添付を無効にすると、コードを実行される条件から外れます。ただしこれは悪用の条件をもとにしたつなぎの措置で、開発元が回避策として案内したものではありません。設定項目の名前と挙動は、開発元の告知で確認してください。プラグイン自体を一時的に停止する手もあります。
背景
AskAnyは、WordPressで作ったサイトにチャット窓口を置くプラグインです。チャットは、会員でない訪問者が気軽に書き込めることに価値があります。そのため、メッセージ送信の入り口は、もともとログインなしで誰にでも開いています。
そこにファイル添付が加わると、「誰でも使える入り口」から「サーバーにファイルを置く処理」までが一本につながります。拡張子や中身を確認しない実装では、画像を送るつもりの入り口がそのまま、実行できるファイルの置き場になります。今回の脆弱性は、この種類にあたります。
よくある質問
Q.WordPress本体の版は関係しますか。
Q.更新しただけで、すでに置かれたファイルも消えますか。
まだ分かっていないこと
- 実際の攻撃で悪用された事例が確認されたかどうかは、公表されていません。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| CVE の記録AskAny |
2.2.0 未満→ 2.2.0 |
2.2.0 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
The AskAny WordPress plugin before 2.2.0 does not validate the extension or content of files attached to chat messages, trusting the browser-supplied file type instead, which allows unauthenticated users to upload PHP files and execute arbitrary code when visitor attachments are enabled.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- web contact@wpscan.com
- web nvd.nist.gov
- web wpscan.com
- web github.com