セキュリティ PHP WordPress本体 XSS アップデート セキュリティ対策 脆弱性

WordPress 7.1.3 が2026年10月6日に公開されました。セキュリティ修正7件と不具合修正4件を含み、公式が「直ちに更新してください」と明記している回です。ログイン不要で成立するものが2件あり、Imgur 埋め込みの修正は本体を更新しただけでは既存の埋め込みに反映されません。

修正は 4.7 まで各系列にバックポートされます。自動更新を止めている環境では自分で更新してください(DISALLOW_FILE_MODS でセキュリティ更新が止まる時の対処)。

非公開投稿のコメントがログインなしで読めていた

個別投稿のコメントフィード(/投稿スラッグ/feed/)が対象です。WP_Query は投稿を閲覧できるかの確認より先にコメントを取得していました。確認で投稿本体は除外されるのにコメントは残り、フィードは 404 を返さないため、非公開投稿や下書きに付いたコメントがそのまま出力されていました。7.1.3 ではコメントの取得が閲覧確認の後に移動しています。

影響を受けるのは、公開前の記事にコメント欄で校正のやりとりをしているようなサイトです。コメント機能を使っていないサイトでは漏れる内容がありません。

コメント管理画面のXSSは承認待ちの状態で発動する

7.1.1 で修正された wpautop() の XSS はコメントが承認されて初めて成立しましたが、今回は承認待ちのコメントが対象です。管理画面の JavaScript(wp-admin/js/common.js)にあるヘルプタブの処理が、クリックされたリンクの href をそのまま jQuery の $() に渡していました。contextual-help-tabs クラスで囲ったリンクをコメントに仕込み、モデレーターがコメント一覧でそのリンクをクリックすると、href の中身が HTML として解釈されます。

訪問者のコメントに class 属性を書けるようになったのは 7.1.0 からなので、この方法で成立するのは 7.1.0〜7.1.2 です。クリックが必要なので自動では発動しませんが、承認待ちコメントの確認は日常の作業です。更新前のサイトでは、見覚えのないリンクを開かないでください。

Imgur埋め込みは更新後にキャッシュを消す

Imgur は信頼済み oEmbed プロバイダの一覧から外されました。信頼済みプロバイダから返る HTML は、見知らぬ HTML をサンドボックス付き iframe に置き換えるフィルタを通りません。Imgur の API 応答には画像の投稿者が書いた文章が含まれるため、それが無加工で出力されていました。

注意点は、埋め込み結果が投稿メタ(_oembed_ で始まるキー)と oembed_cache 投稿に保存されていることです。本体を更新しても、保存済みの HTML は再取得されるまでそのまま表示されます。WP-CLI で件数を確認してから削除します。wp_ は環境のテーブルプレフィックスに読み替えてください。

wp db query "SELECT COUNT(*) FROM wp_postmeta WHERE meta_key LIKE '_oembed_%'"
wp post list --post_type=oembed_cache --format=count
wp db query "DELETE FROM wp_postmeta WHERE meta_key LIKE '_oembed_%'"
wp post delete $(wp post list --post_type=oembed_cache --format=ids) --force

削除したキャッシュは次にその投稿が表示されたときに再取得されます。YouTube や X の埋め込みも作り直されるだけで、表示は変わりません。

残り4件は権限を持つ利用者が前提

他の4件は、攻撃に何らかのアカウントまたは特定の運用が必要です。公式発表が権限を明記していない項目は Patchstack の分析に従っています。

内容 必要な権限・条件
相対 URL を絶対 URL に変換する処理を無限ループにする(DoS) 寄稿者
REST API 経由で自分の投稿を先頭固定にする 著者
保存済みのアイキャッチ ID の値を使った SQL インジェクション 管理者が投稿タイプを指定してエクスポートを実行
投稿ステータスと投稿タイプから組み立てるフック名の衝突(ステータス delete で delete_post が発火する) プラグインが未検証の値を wp_insert_post() に渡している

先頭固定の件は、権限判定が「他人の投稿を編集できる かつ 公開できる」の否定になっていたため、公開権限だけを持つ著者が通過していました。7.1.3 では「どちらか一方でも欠けていれば拒否」に直っています。

不具合修正4件のうち目立つのは、画像アップロード時の Fatal error です。7.0 で入った XMP メタデータから代替テキストを読む処理が、PHP の DOM 拡張の有無を確認せずに DOMDocument を生成していました。7.1.3 では class_exists( 'DOMDocument' ) を確認してから処理します。DOM 拡張を外しているホストは少ないので、該当するのは自前で PHP を構成している環境に限られます。

参考

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

カスタマイズに関するお問い合わせはこちら