「WordPressの全バージョンに深刻な脆弱性」——見出しだけを読むと、世界のサイトの4割前後がいま無防備に晒されているように聞こえます。ですが、CVE-2026-64638の本当の姿は、攻撃の「入り口」と「サーバー乗っ取り」の間に横たわる複数の条件を見て初めてわかります。
WordPressコアのログイン画面に、認証前で悪用できる反射型クロスサイトスクリプティングの脆弱性が見つかった。
CVE-2026-64638、通称XSS2Shell、深刻度はCVSS 8.9(High)。WordPress公式は全バージョンに影響するとし、4.7系まで修正を配布した。存在しないユーザー名でのログイン試行時、エラー画面に攻撃コードが混入し、二つのサニタイズ処理の食い違いをすり抜ける。
ログイン中の管理者が攻撃者ページで操作し、必要な機能が使える構成では、新たなApplication Passwordを生成させPHPコード実行に至る。発見はpwn.aiで、既存研究を出発点にAIが連鎖を自律的に構築した。
修正版7.0.3は8月6日公開。8月8日時点で実環境の悪用報告は見当たらない。
From:
WordPress 7.0.3 リリースノート(WordPress.org)
【編集部解説】
見出しの「全バージョン8.9」に驚く前に、発火条件を一段掘り下げたい
「WordPressの全バージョンに深刻な脆弱性、公式が緊急更新を呼びかけ」——この見出しだけを見ると、WordPressが動くすべてのサイトが、いま無防備に晒されているように読めます。事実、WordPress公式はCVE-2026-64638が全バージョンに影響するとし、CVSSは8.9。数字は嘘ではありません。
ただ、この脆弱性の本当の姿は、入り口と最終地点の間に横たわる条件を見て初めてわかります。
入り口となる反射型XSSは「認証前」です。これは、攻撃者自身がWordPressのアカウントやログイン資格情報を持つ必要がない、という意味です。ただし「被害者の操作も不要」という意味ではありません。公開された攻撃では、被害者を攻撃者が用意したページやリンクへ誘導し、細工したログイン要求を対象サイトへ送らせる必要があります。その要求が処理されたあとのDOM操作やJavaScript実行は、追加の操作なしに自動で進みます。
そして、そこからサーバー上でのPHP実行に至るには、さらに条件が積み重なります。まず、被害者が対象のWordPressに十分な権限を持つ管理者としてログインしている必要があります。加えて、pwn.aiが実証した公開チェーンでは、Application Passwordが利用可能で、後段のページ公開やプラグインアップロードに必要な権限・ファイル変更機能が使える構成であることも前提になります。Application Passwordはコアの既定でSSLサイトまたはローカル環境でのみ有効で、フィルターで無効化もできます。プラグインのアップロードも、マルチサイトの通常管理者には許可されず、ファイル変更を禁止した構成では拒否されます。単一サイトの標準的な管理者構成では成立しうる一方、こうした条件が欠ければ、公開されたRCE経路の一部は遮断されます。
公式のCVSS v4.0スコアは8.9(High)です。ベクターはUser Interaction: Activeで、攻撃成立に被害者側の能動的な関与が必要と評価されています。Attack ComplexityもHighです。8.9はこれらを含むベクター全体から算出された値で、CVSS v4.0ではHighの上限にあたります(Criticalは9.0以上)。
裏を返せば、これは被害者の操作なしにサイトが次々と陥落していく、ゼロクリック型のRCEではないということです。だからといって放置してよい話ではまったくありません。管理者を狙ったフィッシングと組み合わせれば、その「操作」は十分に現実的だからです。
技術的に何がすごいのか——「単体では中程度」を「サーバー実行」に化けさせた連鎖
反射型XSS単体と、そこからPHP実行までつながる今回の完全な連鎖では、評価される影響がまったく異なります。XSS2Shellが恐ろしいのは、平凡に見える入り口に、WordPressコアがもとから抱えていた部品を6段以上つなげて、サーバー実行まで到達させた点にあります。
きっかけは、二つのサニタイズ処理の解釈の食い違いでした。pwn.aiがWordPress 7.0.2で示した公開攻撃経路では、ログインエラーに混入したユーザー名は、まずwp_strip_all_tags()を通ります。これはPHPのstrip_tags()をラップしたもので、<の直後に空白があるとタグと認識せず、素通しします。ところが、その値がエラー表示の過程でwp_kses_post()(KSESエンジン)に渡ると、KSESは別のトークナイザを持ち、< areaを正規の<area>要素として解釈します。片方が「ただの文字列」と判断した値を、もう片方が「許可されたHTML」として通す——このパーサ間の食い違いが起点です。
なお、WordPress公式は4.7系を含む旧版も影響対象としていますが、公開されたこの具体的な処理経路が古い全バージョンで同一に成立することまでは、公開情報からは確認できません。古い版が安全という意味ではなく、実務上は公式アドバイザリに従い、各ブランチの修正版を適用するのが安全です。
そこに、ログインページに読み込まれていたuser-profile.jsが関わります。このスクリプトは「不要に」置かれているのではなく、同じログインページがパスワードリセット機能も担い、そこでパスワード生成UIが必要なため、ページ全体で読み込まれています。攻撃は、通常ログイン時には存在しないはずのDOM要素を注入し、このスクリプトを誤作動させます。続いてDOMクロバリング、REST APIのJSONP、そしてSOME(Same Origin Method Execution)という技法が積み重なります。pwn.aiが単一サイトの標準構成で実証したチェーンでは、管理者セッションで新たなApplication Passwordを生成させ、その資格情報から同一オリジンのJavaScript実行につなぎ、プラグインZIPをアップロードして、最終的にWebサーバープロセス(実証ではwww-data)の権限で任意のPHPを実行させます。
WordPress側の修正は簡潔です。7.0.2では生の$usernameがエラー文へ入っていましたが、7.0.3ではwp_strip_all_tags()を通過した値をエラーメッセージへ埋め込む時点でesc_html()によりHTMLエスケープするよう変更されました。これで、後段のKSESが値を再びHTML要素として解釈する経路を塞いでいます。二つのトークナイザ自体の食い違いを解消するのではなく、危険な値を先にエスケープし、HTML要素として再解釈されない状態で届くようにした——防御側の現実的な判断がうかがえます。
7月のwp2shellに続く2度目——ただし「別物」であることが重要
7月に、同じくWordPressコアの認証前RCEであるwp2shellが報じられました。1か月足らずで、WordPressコアの深刻な認証前脆弱性が2件続いたことになります。
ここで強調しておきたいのは、両者はまったく別の脆弱性だということです。wp2shell(CVE-2026-63030+CVE-2026-60137、7月17日に7.0.2で修正)は、REST APIのバッチ処理の取り違えとSQLインジェクションを連鎖させた、操作不要・完全無認証のRCE。対してXSS2Shell(CVE-2026-64638、8月6日に7.0.3で修正)は、管理者の関与を必要とするXSS起点の連鎖です。
片方にパッチを当てても、もう片方は直りません。7月に7.0.2へ上げて安心していたサイトは、今回あらためて7.0.3へ更新する必要があります。この点は、見出しの派手さよりもよほど実務上重要です。
もう一つの見どころ——発見にAIが関与したこと
XSS2Shellを発見・命名したpwn.aiは、2022年の既存研究を出発点として与えられたうえで、同社のマルチエージェントシステムが約4日かけて、この攻撃チェーンを自律的に発見・再現したと説明しています。ゼロから人間の関与なしに見つけたわけではなく、過去の人間の研究を種として、AIが連鎖を組み上げたという位置づけです。
7月のwp2shell(こちらもAIの関与が報じられた事例)と並べて見ると、セキュリティ研究の担い手が変わりつつある兆候として読めます。こうした事例は、AIによって脆弱性探索や攻撃チェーンの構築が高速化しうることを示しています。一方で、攻撃者全体の参入コストが実際にどの程度下がるのかは、この事例だけから測れるものではありません。
留保とリスク——ここは冷静に
過度に煽らないために、3点を明示しておきます。
第一に、実環境での悪用は、8月8日時点で確認できた公開情報の範囲では、確認報告が見当たりません。pwn.aiは完全なRCEチェーンをそのまま実行できるコードは公開していない一方、認証前XSSのPoCとRCEまでの技術的な各段階は公開しています。入り口となるパーサの食い違いは比較的わかりやすく、公開情報から再現に近づく余地はあります。時間の猶予を過信すべきではありません。
第二に、影響サイト数「5億以上」やシェア「43%超」は、いずれも推定・概算です。pwn.aiはこれらの数字を挙げていますが、算出条件は明示していません。調査会社W3Techsでは、2026年8月時点でWordPressは全Webサイトの約41%とされ、集計方法によって値は異なります。「全世界の4割のサイトが今この瞬間に落ちる」という読み方は正確ではありません。危険なのは、あくまで未更新かつ、上述の発火条件が揃った場合です。
第三に、やるべきことは単純明快です。WordPress 7.0.3、または利用中の旧ブランチに提供された修正版へ更新する。これに尽きます。WordPress公式は、積極的にサポートされるのは最新リリースのみだとも案内しています。自動更新が有効なサイトには背景で配布されますが、有効かどうかを必ず確認してください。すぐに更新できない場合、IONSECは検知の手掛かりとして、wp-login.php宛POSTのユーザー名欄に「<+空白」を含むリクエストや、REST APIの_jsonpパラメータ(特にドットを含む値)をログで確認する方法を挙げています。これは検知策であり、更新の代替となる公式な緩和策ではありません。
【関連記事】
WordPressコアに認証前RCE「wp2shell」、6.9/7.0系に影響 7.0.2などで修正
今回のXSS2Shellの1か月前に報じた、別のWordPressコア認証前RCE。両者の違いを押さえる出発点になる。
「25ドル対50万ドル」GPT-5.6 Sol × wp2shell が問い直すAIセキュリティ研究の民主化
AIがセキュリティ研究の担い手になりつつある流れを論じた記事。今回のpwn.aiの事例と併読したい。
【編集部後記】
pwn.aiが出発点に与えられたのは、2022年にポーロス・イベロが発表した研究でした。その土台にあるSOMEという技法自体は、さらに古く2014年にベン・ハヤックが公表したものです。10年以上前の技法が、既存研究を経由し、AIエージェントの手で別の連鎖へと組み替えられ、コア級の脆弱性として戻ってきた。
過去の研究成果が時間を置いて別の武器に化ける——この再利用の速さこそ、今回いちばん記憶しておきたい点です。防御側は、数年前の攻撃研究が次に何と結びつくかまで視野に入れる必要があるのかもしれません。
【用語解説】
反射型XSS(クロスサイトスクリプティング)
攻撃者が用意したスクリプトを、URLなどに仕込んで被害者のブラウザ上で実行させる攻撃。「反射型」は、送り込んだコードがその場でサーバーから跳ね返ってくる型を指す。
RCE(リモートコード実行)
遠隔から標的サーバー上で任意のプログラムを実行される状態。今回はWebサーバープロセスの権限での実行にあたる。Webの脆弱性のなかでも重大な結果とされる。
認証前(pre-auth)
攻撃者自身がログイン(認証)を経ずに攻撃の入り口へ到達できること。ただし、被害者側の操作まで不要という意味ではない点に注意が必要である。
CVSS
脆弱性の深刻度を0〜10で表す国際指標。今回の8.9はCVSS v4.0の値で、「High(重要)」の最上位。最上位区分「Critical」の一歩手前にあたる。
SOME(Same Origin Method Execution)
ベン・ハヤックが2014年のBlack Hat Europeで発表した攻撃技法。同一オリジンにある正規の関数を、JSONPなどを介して呼び出させる。
Application Password
WordPressが備える、API連携用の代替パスワード。既定ではSSLサイトまたはローカル環境でのみ有効で、フィルターで無効化できる。今回の攻撃連鎖では、これを新たに生成させて奪うことが乗っ取りの決め手になる。
【参考リンク】
WordPress 7.0.3 リリースノート(日本語)(外部)
修正提供元による公式のリリース告知で、対象バージョンと更新方法を日本語で案内している。すべてのサイト管理者が最初に参照すべき一次情報である。
pwn.ai「XSS2Shell」技術解説(外部)
脆弱性の発見元による技術解説。攻撃連鎖の各段階と、報告から公開までのタイムラインを、実際のコードを交えて詳述している。
GitHub Security Advisory GHSA-52p2-r8wf-jcrf(外部)
CVSS 8.9のベクターと影響バージョンの一覧を記録した、WordPress公式のGitHubセキュリティアドバイザリである。
【参考記事】
New WordPress Pre-Auth XSS Could Lead to PHP Code Execution — Patch ASAP(外部)
pwn.aiから詳細提供を受けた報道。RCE到達には管理者の操作が要る点と、完全なPHP実行はローカル環境で実証された旨を整理している。
XSS2Shell: WordPress CVE-2026-64638 Explained(IONSEC)(外部)
7月のwp2shell(別CVE)との違いや、アクセスログで確認すべき手掛かりを、技術的な根拠とともに具体的に示した英語の解説記事である。
XSS2Shell: WordPress Login Screen XSS Chains to PHP Code Execution(Falcon Internet)(外部)
CVSS 8.9がHighでありCriticalではないことの意味を、現実的なリスク評価と優先度付けの観点からかみ砕いて論じた解説である。
WordPress Coreの脆弱性 CVE-2026-63030 / CVE-2026-60137(通称「wp2shell」)についてまとめてみた(piyolog)(外部)
7月のwp2shell(CVE-2026-63030ほか)の日本語まとめ。今回のXSS2Shellと混同しないための対照として役立つ。





|WordPressプラグイン利用者は今すぐアップデートを-768x419.jpg)












