セキュリティ

【今すぐ確認】WordPressを更新しても直らない脆弱性? サーバーの部品Brotli、ピンバック経由のコード実行を試験で確認。あなたのサーバーは?(JPCERT・Wordfence)【2026年】

公開 ・ 読了の目安 約13分 ・ Sorabun 編集部

【今すぐ確認】WordPressを更新しても直らない脆弱性? サーバーの部品Brotli、ピンバック経由のコード実行を試験で確認。あなたのサーバーは?(JPCERT・Wordfence)【2026年】

WordPress を最新に更新した。プラグインも更新した。それでも直らない脆弱性があります。サーバーの中にある、Brotli(ブロトリ)という圧縮の部品の脆弱性(CVE-2026-111497)です。

セキュリティ会社の Wordfence は、2026年11月2日、WordPress のピンバックという機能を通って、ログインなしでコードを実行できることを、試験の環境で確かめたと公表しました。

私たちは、JPCERT/CC の注意喚起と Wordfence の記事、WordPress の公式の文書を開き、手元の WordPress で、守る側の設定がどれだけ効くかを実際に試しました。

先に結論を書きます。

1. Brotli の脆弱性とは

JPCERT/CC の注意喚起。Googleは、2026年10月21日にBrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関するアップデートを公開しました。本脆弱性の影響を受けるアプリケーションなどが、攻撃者が細工したBrotli形式の圧縮データを展開すると、メモリの破損によりアプリケーションの異常終了、メモリ上の情報の漏えい、任意のコード実行などにつながる可能性があります。
JPCERT/CC「BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関する注意喚起」(2026年10月26日)

JPCERT/CC は2026年10月26日に注意喚起を出しました。「本脆弱性の影響を受けるアプリケーションなどが、攻撃者が細工したBrotli形式の圧縮データを展開すると、メモリの破損によりアプリケーションの異常終了、メモリ上の情報の漏えい、任意のコード実行などにつながる可能性があります。」

Brotli は、Web のデータを小さくして速く送るための、圧縮の部品です。サーバーの OS や PHP、Node.js など、いろいろな部品の中に入っていて、WordPress の管理画面からは見えません。JPCERT/CC によると、Node.js が公表したときは「Node2Shell」、HTTP の通信で使われることから「HTTP2Shell」とも呼ばれています。

JPCERT/CC の注意喚起。対象となるBrotliのバージョンは以下のとおりです。Brotli v1.2.0からv1.2.1より前のバージョン、Brotli v1.1.0からv1.1.1より前のバージョン、Brotli v1.0.3からv1.0.10より前のバージョン
JPCERT/CC の注意喚起の、対象のバージョン

対象は、Brotli の 1.2.0、1.1.0、1.0.3〜1.0.9 です。修正版は 1.2.1・1.1.1・1.0.10。ただし、サーバーの OS の部品では、版の頭の数字はそのままで、末尾だけが変わる形で直っていることがあります(5章で実際に見ます)。

2. WordPress との関係(Wordfence・11月2日)

Wordfence の記事。This is not a vulnerability in WordPress Core, a plugin, or a theme. However, WordPress can ask the server to retrieve data from other websites, and the server may use Brotli when it processes the response. A public proof of concept uses WordPress's unauthenticated XML-RPC pingback feature to reach the vulnerable library.
Wordfence「HTTP2Shell: What the Critical Brotli Vulnerability Means for WordPress Sites」(2026年11月2日・英語)

Wordfence は "This is not a vulnerability in WordPress Core, a plugin, or a theme." と書いています。ただし、WordPress はサーバーにほかのサイトのデータを取りに行かせることができ、その返事を処理するときにサーバーが Brotli を使うことがある。公開された実証のコードは、ログインの要らない XML-RPC のピンバックを使っている、としています。

ピンバックは、ほかのブログがあなたの記事にリンクしたときに届く通知です。通知が来ると、WordPress は本当にリンクしているかを確かめるため、相手のページを取りに行きます。その返事が圧縮されていると、サーバーの Brotli がほどきます。

Wordfence の記事。Our lab testing confirmed unauthenticated remote code execution through WordPress. The public proof of concept repeatedly executed code in the PHP 8.3.36 server environment it was designed for. It did not execute after Brotli was patched.
Wordfence(2026年11月2日・英語)

Wordfence は、隔離した試験の環境で "Our lab testing confirmed unauthenticated remote code execution through WordPress." と書いています。実証のコードは、それが作られた PHP 8.3.36 の環境ではくり返しコードを実行し、Brotli を修正したあとは実行されなかった、としています。

Wordfence の記事。CISA lists CVE-2026-111497 as known exploited, but its public entry does not identify the affected application, attack route, or outcome. Sensor networks continue to record exploitation attempts, but the public reports we reviewed through November 2 do not document a successful production compromise or a compromise through WordPress.
Wordfence(2026年11月2日・英語)

落ち着いて見ておきたいのは、ここです。攻撃の試みは観測されていますが、Wordfence が11月2日までに見た公開の報告には、本番のサイトで成功した被害や、WordPress を通った被害は記録されていません。公開のコードは、サーバーの環境が少し違うだけで(PHP 8.3.35 など)実行されなかった、ともしています。ただし Wordfence は、環境しだいだからといって後回しにしないように、と書いています。

3. 手元で試した: WordPress は「Brotli で送って」と頼む?

手元の WordPress 7.1.4 から手元の受け口へ取りに行かせて届いた頼み方。User-Agent: WordPress/7.1.4; http://127.0.0.1:8092、Accept-Encoding: deflate, gzip, br, zstd
Sorabun が手元の WordPress 7.1.4 で試した結果

手元の WordPress 7.1.4(公式の zip・初期のまま・PHP 8.3.6)から、WordPress の関数 wp_remote_get で手元の受け口へ取りに行かせ、届いた頼み方(ヘッダー)を記録しました。

Accept-Encoding に br がありました。br が Brotli です。WordPress の通信の部品(Requests)は、サーバーの curl が使える圧縮の形式をすべて受け付ける設定になっていて、この環境の curl は Brotli を使えました。つまり、WordPress が外へ取りに行った返事を、サーバーの Brotli がほどくことがあります。

4. ピンバックの設定、どれが効く?

設定 › ディスカッションの欄は「新しい投稿」だけ

手元の WordPress の 設定 › ディスカッション。「新しい投稿に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」にチェックが入っている。下に「個々の投稿は、この設定を上書きできます。ここでの変更は、新しい投稿にのみ適用されます。」
手元の WordPress 7.1.4 の 設定 › ディスカッション(赤い枠は Sorabun が付けた)

初期の WordPress では、「新しい投稿に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」がオンです。そして画面に「ここでの変更は、新しい投稿にのみ適用されます。」と書いてあります。

3通り試した

手元で試した結果。初期のまま、ディスカッションのピンバックを外した、xmlrpc_enabled を false にした、のどれでも、WordPress は送り元を取りに行こうとした。前からある投稿も「許可しない」にしたときだけ、取りに行かなかった
Sorabun が手元の WordPress 7.1.4 で試した結果(攻撃のデータは作らず、取りには行かせずに記録)

自分のサイトの中のページを送り元にしてピンバックを1回送り、WordPress が送り元を取りに行こうとしたかを記録しました(取りには行かせず、記録して止めました。攻撃のデータは作らず、送ってもいません)。WordPress はピンバックを断った理由を外に見せない(番号0で返す)ので、「取りに行こうとしたか」で見ています。

設定 WordPress は送り元を
初期のまま 取りに行こうとした
設定 › ディスカッションのピンバックを外した 取りに行こうとした(前からある投稿は「受け付ける」のまま)
xmlrpc_enabled を false にした 取りに行こうとした(止まったのはログインの要る機能だけ)
前からある投稿も「許可しない」にした 取りに行かなかった

WordPress のピンバックの処理は、その投稿がピンバックを受け付けるかを、送り元を取りに行くより前に確かめます。だから、受け付ける投稿が1つも無ければ、取りに行く前に止まります。試したあと、設定は元に戻しました。

xmlrpc_enabled も、Wordfence の設定も、ピンバックは止めない

WordPress Developer Resources の xmlrpc_enabled の説明。Further, the filter does not control whether pingbacks or other custom endpoints that don't require authentication are enabled.
WordPress Developer Resources「xmlrpc_enabled」(英語)

XML-RPC を止める方法として紹介されることの多い xmlrpc_enabled について、WordPress の公式の説明は "Further, the filter does not control whether pingbacks or other custom endpoints that don't require authentication are enabled." としています。手元でも、止まったのはログインの要る機能だけでした(HTTP 405)。

Wordfence の記事。Wordfence's Disable XML-RPC authentication option does not disable unauthenticated pingbacks. WordPress documents that the similarly named xmlrpc_enabled filter also affects only methods that require authentication; it does not disable pingback.ping.
Wordfence(2026年11月2日・英語)

Wordfence も、自分たちのプラグインの「Disable XML-RPC authentication」の設定では、ログインの要らないピンバックは止まらない、と書いています。

前からある投稿は、一括編集で止める

WordPress.org の FAQ。First, uncheck Allow link notifications from other blogs (pingbacks and trackbacks) on new articles on the Settings > Discussion screen. This will only disable trackbacks and pingbacks on future posts. Next, to completely disable trackbacks and pingbacks, you will have to edit each past post and uncheck Allow trackbacks and pingbacks on this page from the Edit Post screen. Use Bulk Edit to disable multiple posts at once.
WordPress.org「FAQ Work with WordPress」(英語)

WordPress の公式のよくある質問は、まずディスカッションの欄を外し(これからの投稿だけ)、前からある投稿は一つずつ編集するか、一括編集でまとめて止めるように、としています。

手元の WordPress の一括編集の画面。「トラックバック/ピンバック」の欄で「許可しない」を選んだところ
手元の WordPress 7.1.4 の 投稿 › 一括操作 › 編集(更新は押していない。赤い枠は Sorabun が付けた)

投稿の一覧ですべての投稿を選び、一括操作の「編集」で、「トラックバック/ピンバック」を「許可しない」にして更新します。固定ページも同じです。ただし、これは WordPress を通る道を1つふさぐだけで、Brotli そのものは直りません。Wordfence も、XML-RPC やピンバックの動きを変えると、ほかのサービスとのつながりに影響することがあり、示された道を1つ消すだけだ、としています。

5. 本命はサーバーの更新。更新したら起動し直す

試しの環境(Ubuntu 24.04.5 LTS)の Brotli の更新。更新する前は 1.1.0-2build2 で、動いている PHP が libbrotlicommon.so.1.1.0 (deleted)・libbrotlidec.so.1.1.0 (deleted) を読み込んでいた。更新して PHP を起動し直したあとは 1.1.0-2ubuntu0.1。Ubuntu の修正版は 26.10: 1.2.0-4ubuntu0.1、26.04 LTS: 1.2.0-3ubuntu0.1、24.04 LTS: 1.1.0-2ubuntu0.1、22.04 LTS: 1.0.9-2ubuntu0.1
Sorabun の試しの環境(外に公開していない)で更新した結果・Ubuntu「USN-8956-1」

私たちが動画づくりに使っている試しの環境(Ubuntu 24.04・外に公開していない)を見ると、Brotli は修正の前の版(1.1.0-2build2)でした。Ubuntu の通知(USN-8956-1)の修正版 1.1.0-2ubuntu0.1 に更新すると、版の頭の「1.1.0」は同じで、末尾だけが変わりました。 版の頭だけを見ると、直ったかどうかが分かりません。

そして、更新しただけでは、動いている PHP は古い Brotli を使い続けていました(消えた古いファイルを、まだ読み込んでいる状態)。PHP を起動し直して、はじめて新しい Brotli に切り替わりました。Wordfence も、更新のあとに PHP や Web サーバーなど古い部品を読み込んだものを起動し直すように、コンテナは新しいイメージで作り直すように、としています。

6. あなたがやること(5つ)

Wordfence の記事の TL;DR。Ask your hosting provider whether the Brotli library used by your site has been patched for CVE-2026-111497. Updating WordPress, a plugin, or a theme does not update this server-level library.
Wordfence(2026年11月2日・英語)
  1. レンタルサーバーの会社に、Brotli が修正済みかを聞く。 聞き方は「CVE-2026-111497 の Brotli は修正済みですか」「更新のあと、サービスを起動し直しましたか」。WordPress のサイトヘルスなどの画面では、この部品の版は確かめられません
  2. 自分でサーバーを管理しているなら、OS の更新を入れて、PHP や Web サーバーを起動し直す。 版は頭の数字だけでなく、末尾まで OS の通知と照らします。コンテナは新しいイメージで作り直します
  3. ピンバックを使っていないなら、前からある投稿も「許可しない」にする(設定 › ディスカッションの欄と、投稿の一括編集)
  4. サーバーの記録(ログ)を残しておく。 Wordfence は、公開の前から更新するまでの Web サーバー・PHP・外への通信の記録を残すようにすすめています
  5. WordPress 本体とプラグインも、いつもどおり最新にする

よくある質問

WordPress を最新にすれば大丈夫ですか?

いいえ。Brotli はサーバーの部品なので、WordPress・プラグイン・テーマを更新しても直りません。レンタルサーバーの会社かサーバーの管理者が、OS などの部品を更新する必要があります。

自分のサイトが Brotli を使っているか、管理画面で分かりますか?

分かりません。Brotli は WordPress の外にある部品で、管理画面には出てきません。レンタルサーバーの会社に聞くのが確かです。

xmlrpc.php を止めるプラグインを入れていれば安心ですか?

止め方によります。WordPress の xmlrpc_enabled や、Wordfence の「Disable XML-RPC authentication」は、ログインの要る機能だけを止め、ピンバックは止めません。手元の試しでも、止まったのはログインの要る機能だけでした。いずれにしても、これは道を1つふさぐだけで、Brotli は直りません。

実際に WordPress のサイトが被害にあっていますか?

Wordfence によると、11月2日までに見た公開の報告には、本番のサイトで成功した被害や、WordPress を通った被害の記録はありません。ただし、攻撃の試みは観測されていて、CISA は悪用が確認された脆弱性の一覧に載せています。

まとめ

出典(2026年11月3日に確認)

関連するコラム

コラムの一覧へ