WordPressを最新に保つための更新処理そのものが、攻撃の入口になっていました。狙われるのは、本体の更新が走るほんの数秒間です。成功させるのは難しいとされながら、攻撃は修正の公開当日に始まり、米CISAは悪用を確認した脆弱性の一覧に加えました。この数秒の隙を、どう読めばよいのでしょうか。
WordPressセキュリティチームは2026年10月28日、WordPress 7.1.4と旧ブランチ向けの修正版を公開した。もっとも重要な修正は、コアの更新処理にある未認証のリモートコード実行の脆弱性CVE-2026-119977で、4.7以降の各系列の修正前の版が影響を受ける。更新中の短い時間にしか悪用できないレースコンディションのため、成功は難しいとされる。Wordfenceによると、攻撃は公開当日に始まり、10月30日には1日で7万4,000回以上をブロックした。累計は24万回を超え、CISAのKEVカタログにも追加された。
Wordfenceは、更新前に /inv-content/upgrade/ 内のPHPファイルへのアクセスをWebサーバーで遮断することを勧めている。
From:
Attackers Actively Probing for Upgrade-Window RCE Vulnerability in WordPress Core
【編集部解説】
7.1.1、7.1.2、7.1.3と、9月以降のWordPressのセキュリティリリースを追ってきました。4本目の7.1.4で狙われたのは、プラグインでもテーマでもなく、WordPressが自分自身を新しくする、その更新処理でした。
更新の数秒間に、もう1つのWordPressが現れる
WordPressの本体をまるごと更新するとき、新しいファイル一式は、いったん wp-content/upgrade/ の下に展開されます。5.9から7.1.3までの版では、このフォルダーの名前が配布パッケージの名前から決まっていて、外から予想できました。発見者によると、4.4から5.8の版にはランダムな文字列が付きますが、何らかの形で場所が漏れれば、同じ条件がそろいます。中身を一覧で見せないための index.php も、更新前の片付けで消えていました。多くのサーバーでは、このフォルダーにWebから直接アクセスできます。
つまり更新が走っている数秒のあいだ、予想できる場所に、設定前のWordPressがもう1つ置かれている状態になります。その中には、初期設定を行うインストーラー(setup-config.php)も含まれています。
攻撃者がちょうどその数秒間にインストーラーへたどり着くと、自分のデータベースにつながる設定ファイル(wp-config.php)を、作業用フォルダーの中に作らせることができます。発見者のウムット・バイラム氏によると、更新処理はこのファイルも新しい本体と一緒にコピーし、サイト本来の設定ファイルを上書きしてしまいます。
上書きされたサイトは、攻撃者の用意した空のデータベースにつながり、初期設定の画面を出します。攻撃者はそこで最初の管理者アカウントを作り、プラグインのインストールを通じてPHPのコードを実行できます。攻撃者がつかむ必要があるのは数秒間だけで、乗っ取りの手順そのものは、更新が終わったあとに進められるということです。
問題につながる処理は、WordPressの初期のころまでさかのぼります。Patchstackは2.8から、発見者は2.7.0からと説明しています。
7.1.4の修正は3つです。フォルダー名に16文字のランダムな文字列を付けること。一覧表示を防ぐ index.php を消さずに残すこと。そして、作業用フォルダーの wp-config.php を本番へコピーしないことです。index.php が防ぐのは一覧表示までで、場所を知っている相手のアクセスまで止めるものではありません。攻撃者に場所を言い当てさせないことと、設定ファイルを本番に持ち込ませないこと。修正は、入口と出口の両方をふさいでいます。修正版は4.7系まで、25の系列に用意されています。
「高」「低」「悪用を確認」は、同じものを測っていない
この脆弱性の評価は、見る場所によって違って見えます。
Wordfenceの評価はCVSS 8.1(High)です。Patchstackのデータベースでは、CVSSは9なのに、Patchstack独自の優先度は「Low」で、「実際に悪用するのは現実的でない」と添えられています。そして米CISAは11月3日、悪用が確認された脆弱性の一覧(KEV)に加えました。
矛盾しているように見えますが、3つは別の物差しです。CVSSは、攻撃の条件と成功したときの影響から、脆弱性そのものの深刻さを点数にします。Patchstackの優先度は、実際に悪用されそうかを踏まえて、どれだけ急いで対応すべきかを示すものです。KEVは、CISAが悪用を確認した脆弱性の一覧です。
ただ、Patchstackの公開している定義では、「Low」は悪用が知られていないものに付く区分で、悪用が知られているものは「High」とされています。同じページに「Low」とKEVの表示が並んでいる理由は、公開資料からは読み取れません。Patchstackは、優先度はデータに応じて更新するとしています。
「成功すればサイト全体を乗っ取られかねないが、成功させるのは難しい。それでも攻撃者はすでに試している」。3つの評価を重ねると、この脆弱性の姿はそう読めます。
24万回は、侵入された回数ではない
Wordfenceによると、攻撃は公開当日に始まりました。防御ルールを配った9分後に最初の一致があり、最初の21時間で1万8,500回を超え、10月30日には1日で7万4,000回以上をブロックしています。11月5日の発表時点で、累計は24万回を超えています。
ただ、Wordfence自身が、この数字を侵害の件数と読まないよう注記しています。大半は、更新の瞬間に当たることを期待して、予想できるパスへ自動で送り続けるリクエストだと見られます。規模の大きな攻撃元のうち2つは、少数のサイトに約14.5時間アクセスを繰り返していました。どのサイトが侵害されたのか、具体的な事例や件数は公表されていません。CISAは悪用の証拠にもとづいてKEVに加えたとしていますが、その中身は示していません。
Wordfenceのグラフでは、日ごとの攻撃量は10月30日をピークに下がり、11月3日には1万回を下回っています。減った理由は示されていません。
直すための更新が、最後の1回になる
この脆弱性には、少し変わった性質があります。穴は「今入っているWordPressの更新処理」にあるため、WordPressに組み込まれた更新機能で7.1.4へ更新するその1回は、古い更新処理を通ります。
発見者の解説によると、その1回では、設定ファイルを本番へコピーしない修正はすでに効きます。新しい版の処理がコピーを担うためです。一方、フォルダー名のランダム化と index.php の保持は、展開を担う古い版の処理にあるため、まだ効きません。作業用フォルダーのインストーラーには届くため、攻撃者が一時的なコピーを自分のデータベースで立ち上げ、片付けられる前にPHPのコードを実行する道は残ります。
それでもWordfenceは、更新を先送りせず、すぐに行うよう勧めています。危ない時間は更新が続く数秒だけで、修正版になったあとの更新は影響を受けないからです。先送りしても、何も手を打たずに同じ更新機能を使えば、危ない数秒はいずれ訪れます。そのあいだ、同時に直されたほかの穴のうち、使っている版に当てはまるものも開いたままです。
そのうえで、更新の前にひと手間かけられるなら、Webサーバーの設定で wp-content/upgrade/ の中のPHPファイルへのアクセスを止めておくと、その最後の1回も守れます。Patchstackによると、修正版では、このフォルダーには更新のとき以外 index.php しか置かれません。外から見せる必要のない場所です。
WordPressが起動する前に、守る必要がある
もう1つ見ておきたいのは、どこで止められるかです。
狙われるのは、WordPress本体を読み込まずに単独で動くPHPファイルです。通常のプラグインとして読み込まれるセキュリティ機能は、このリクエストが来ても起動していません。Wordfenceは、PHPファイルが動く前にファイアウォールを読み込む「Extended Protection」の設定で最適化していれば止められるとしています。一方Patchstackは、自社のPHPレベルのファイアウォールではこのリクエストを防げないとして、Webサーバーで拒否するよう勧めています。
なお、Wordfenceの防御ルールは有償版には10月28日に配られ、無償版に届くのは30日後の11月27日です。プラグインを入れているから大丈夫とは言い切れない種類の攻撃だと言えます。
8月のwp2shellの記事で「守る場所は管理画面からAPIへ」と書きました。今回は、守る場所がさらに手前、WordPressが起動する前の段階にまで広がっています。
サイトを管理している方に、いま確かめてほしいこと
まず、管理画面の「更新」で、7.1.4、または利用中の系列の修正版(7.0.8、6.9.11など)になっているかを確かめてください。自動更新が有効なら、すでに適用されているはずですが、思い込みで済ませないことが大切です。
次に、Webサーバーのアクセスログで、/inv-content/upgrade/ の中のPHPファイル、とくに setup-config.php へのアクセスがないかを見てください。正規の更新処理が、外からこれらのファイルを呼ぶことはありません。あわせて、身に覚えのない管理者アカウントやプラグインがないか、wp-config.php のデータベースの接続先が書き換わっていないかも確認しておくと安心です。
4本続いたリリースが示すもの
7.1.4の修正は22件で、3週間前の7.1.3の7件から大きく増えました。そのうち2件の報告者には、7.1.1のときと同じくAnthropicの名前があります。9月17日の7.1.1から6週間で、セキュリティリリースは4回目になりました。
修正の公開当日から攻撃が始まったことは、更新処理そのものが、攻撃の入口として見られていることを示しています。WordPress 7.1.4は、フォルダー名をランダムにするという小さな変更で、その数秒間に攻撃者が展開先を言い当てることを難しくしました。
11月3日のベータ版の告知では、7.2の公開は12月8日に予定されています。自動更新を信頼できる仕組みに保つことと、サーバーの側で余計な扉を閉じておくこと。その両方がそろったとき、更新は安心して任せられる作業に戻っていくはずです。
【関連記事】
【解説】WordPress 7.1.1|脆弱性を見つける側が入れ替わった
9月の7.1.1の解説記事。セキュリティ修正の報告者にAI企業が並んだ背景と、開発元へ届く報告数の急増を読み解いている。
WordPress 7.1.2、Critical脆弱性を修正|「条件付き」の中身を読む
9月の7.1.2の記事。未認証のパストラバーサルに付いたCriticalという評価の「条件付き」の中身を読み解いている。
WordPress 7.1.3、脆弱性7件を修正|承認待ちコメント経由のXSSなど
10月の7.1.3の記事。承認待ちコメント経由のXSSなど7件の修正と、ユーザー一覧に出ない管理者を作る攻撃を扱っている。
WordPress、守る場所は管理画面からAPIへ|wp2shellが示したもの
攻撃面が管理画面からAPIへ移ったことを論じた記事。今回の「WordPressが起動する前に守る」話の前段にあたる内容だ。
【解説】脱WordPressは「出口」で選ぶ|EmDash・Wix・Studio・静的HTML・AI自作CMSのメリットとリスク
WordPressから別のCMSへ移る選択肢を、移行の「出口」の観点で比べた解説。更新の手間と移行の判断材料を整理している。
【編集部後記】
発見者の解説には、本文に入れきれなかった経緯があります。展開先のフォルダー名には、4.4の時点で6文字のランダムな文字列が付き、外から予想できなくなっていました。ところが5.9(2022年1月)で、配布サーバーが示すファイル名をそのまま使う変更が入り、名前は再び予想できるものに戻っていたのです。
いったん閉じた扉を開け直したのは、攻撃ではなく、便利にするための変更でした。7.1.4では、ランダムな文字列がフォルダーそのものに付けられています。次に扉を開けてしまう変更に、誰が気づけるでしょうか。
【用語解説】
レースコンディション
複数の処理が同時に進むとき、実行の順番やタイミングのずれによって想定外の結果が生じる不具合。本件では、更新ファイルを展開してから片付けるまでの短い時間に割り込まれることを指す。CISAはCWE-367(確認した時点と使う時点のずれ)に分類している。
リモートコード実行
ネットワーク越しに、攻撃者が対象のサーバー上で任意のプログラムを動かせてしまう状態。英語ではRemote Code Execution(RCE)。脆弱性の中でも被害が大きい部類に入る。
CVSS
Common Vulnerability Scoring Systemの略。脆弱性の深刻さを0〜10の数値で表す共通の評価方式で、FIRSTが仕様を管理する。攻撃の条件と、成功したときの影響から算出される。
KEV
Known Exploited Vulnerabilitiesの略。米CISAが、悪用を確認した脆弱性を掲載するカタログ。米連邦政府機関には、掲載された脆弱性へ期限内に対応することが求められる。本件の期限は2026年11月6日だった。
wp-config.php
WordPressの設定ファイル。データベースの接続先やユーザー名、パスワード、認証用の鍵などを記す。このファイルを差し替えられると、サイトは別のデータベースにつながる。
setup-config.php
WordPressのインストーラーの一部で、初めて設置するときに wp-config.php を作成するためのファイル。認証なしで動く。
ブランチ
ソフトウェアのバージョンの系列。WordPressは最新版のほか、4.7系以降の古い系列にもセキュリティ修正を配布しており、本件では25の系列に修正版が出た。
Extended Protection
Wordfenceのファイアウォールの動作モード。WordPress本体より先にファイアウォールを読み込み、PHPファイルが直接呼び出された場合にも検査できるようにする。
【参考リンク】
WordPress 7.1.4(外部)
WordPress.orgによる7.1.4のリリース告知。修正した脆弱性と報告者の一覧、旧系列へ修正を届ける方針を記載している。
Version 7.1.4(外部)
WordPress.orgの7.1.4の詳細ページ。修正した22件と、4.7系までの系列ごとに影響する件数と修正版の番号を掲載している。
Known Exploited Vulnerabilities Catalog(外部)
米CISAが運営する、悪用を確認した脆弱性のカタログ。CVE番号で検索すると、本件の掲載日と連邦機関の対応期限を確認できる。
Wordfence(外部)
WordPress向けセキュリティプラグインを提供するWordfenceの公式サイト。脆弱性の情報と攻撃の観測データを公開している。
WordPress Core <= 7.1.3 is vulnerable to Remote Code Execution (RCE)(外部)
Patchstackの脆弱性データベースにある本件の項目。CVSSの値と同社独自の優先度、KEVの表示を並べて確認できる。
【参考記事】
WordPress 7.1.4 Patches Unauthenticated Upgrade-Window RCE; Exploitation Attempts Detected After Release(外部)
Wordfenceの技術解説。防御ルールの配信から9分で最初の攻撃を検知し、21時間で1万8,500回超を観測したと報告。
WordPress 7.1.4 Security Release(外部)
Patchstackによる7.1.4の解説。フォルダー名の16文字のランダム化と、告知にないwp-config.phpの除外を説明。
CVE-2026-119977: When Updating WordPress Becomes the Vulnerability(外部)
発見者ウムット・バイラム氏による解説。wp-config.phpが本番に上書きされる経路と、最初の更新で効く修正を示す。
Patchstack Priority(外部)
Patchstack独自の優先度の定義。Lowは悪用が知られていないもの、Highは悪用が知られているものなどと説明している。



