WordPressに未認証で任意コード実行を許す重大な欠陥

WordPressはバージョン7.1.2をリリースし、重大なパストラバーサル脆弱性に対処しました。この脆弱性はCVE-2026-87902として追跡されており、特定のサーバー構成やテーマ構成下では未認証のリモートコード実行(RCE)につながる可能性があります。

ブックセキュリティ監査

この欠陥のCVSS v4スコアは9.2で、バージョン4.7までさかのぼるWordPressに影響します。

WordPressの重大な欠陥

この問題は、WordPressの`get_page_template()`機能におけるページテンプレート解決処理の不備に起因します。未認証の攻撃者はテンプレート解決を操作することで、アクティブなテーマディレクトリの外部にある、攻撃者が選んだローカルの読み取り可能なPHPファイルをWordPressに読み込ませることができます。

これによりパストラバーサル状態が生じ、条件が揃えば攻撃対象のWebサーバー上で任意のPHPコード実行に発展する可能性があります。

この脆弱性はCWE-98に分類されており、PHPのincludeやrequire操作で使用されるファイル名の制御が不適切であることに関するものです。

この脆弱性が重大と評価されているのは、悪用に認証やユーザーの操作が一切不要であり、影響を受けるWordPressインストールの機密性・完全性・可用性を損なう可能性があるためです。

ただし、悪用は可能であっても条件付きであり、無条件に発生するわけではありません。アドバイザリによると、攻撃者には次の2つの前提条件が必要です。

  • アクティブな親テーマまたは子テーマに、「page-templates」のような「page-」で始まるトップレベルディレクトリが存在すること。
  • サーバー上に読み取り可能なローカルの.phpファイルが存在し、Webサーバープロセスからアクセス可能であること。

影響を受けるテーマには、レガシーなTwenty TwelveやTwenty Fourteenといった標準WordPressテーマのほか、Neve、Hestia、Sydneyなどいくつかのサードパーティ製テーマが含まれます。

危険な攻撃連鎖の一つとして、PHPの`pearcmd.php`を利用する手法が挙げられます。`register_argc_argv`というPHP設定が有効になっている場合、これを利用してPEARからRCEへとつながる挙動を引き起こすことが可能です。アドバイザリによれば、公式のPHP Dockerイメージもこの問題の影響を受けるほか、PHP 8.5より前のバージョンを使用するデフォルトのcPanel構成も対象になります。

この問題はWordPressバージョン7.1.0から7.1.1、さらにバージョン4.7まで遡る、サポートおよびセキュリティメンテナンスが継続されている旧ブランチにも影響します。

主要な修正版はWordPress 7.1.2ですが、対象となる各ブランチ向けにパッチ適用済みのメンテナンスバージョンもリリースされており、7.0.6、6.9.9、6.8.10、4.7.37が含まれます。

WordPressは旧ブランチを利用するユーザー向けにパッチをバックポートしていますが、実際にアクティブなサポートが継続されるのは最新版のみです。

管理者は直ちにWordPress 7.1.2、あるいは自身が利用しているブランチで入手可能な最新のパッチ適用版へ更新すべきです。

更新はWordPressダッシュボードから「更新」→「今すぐ更新」を選択することでインストールできます。バックグラウンドでの自動更新が有効になっているサイトでは、自動的に更新が始まるはずです。最新のWordPressパッケージは公式ダウンロードページからも入手できます。

サイト運営者は、自身が使用しているアクティブテーマや子テーマに「page-*」ディレクトリが存在しないか確認し、`pearcmd.php`のような読み取り可能なPHPファイルがWebサーバーのアカウントに公開されていないかを検証し、運用上可能であれば`register_argc_argv`をはじめとする不要なPHP設定を無効化すべきです。この脆弱性はセキュリティ研究者のRobert Ressl氏によって責任ある開示が行われました。

セキュリティ欠陥レポート

SOCのアラート調査時間を1件あたり21分短縮。即時対応のためのIOCコンテキストでSOCを強化: TI LookupをSOCに統合する

翻訳元: https://gbhackers.com/critical-wordpress-flaw/

本記事は gbhackers.com の記事を翻訳・要約したものです。