【ITニュース解説】WordPress 7.1.2 Patches a Critical Path Traversal to RCE: Update Now
2026年10月08日に「Dev.to」が公開したITニュース「WordPress 7.1.2 Patches a Critical Path Traversal to RCE: Update Now」について初心者にもわかりやすく解説しています。
ITニュース概要
WordPress 7.1.2(および下位バージョン)で、ログインなしで不正なファイル参照を悪用し、遠隔からプログラムを実行される深刻な脆弱性が修正された。バージョン4.7.0以降の全サイトが影響を受け、既に悪用も確認されているため、WordPressを最新版に緊急アップデートすることが強く推奨される。
ITニュース解説
WordPressにおいて、システムエンジニアを目指す初心者も理解しておくべき非常に深刻なセキュリティ上の問題が発見された。この脆弱性は、WordPressのバージョン7.1.2で修正されたが、その内容は「認証不要のディレクトリトラバーサルからリモートコード実行に至る」というもので、Webサイト運営者にとって最優先で対処すべき緊急性の高い問題である。
まず、「ディレクトリトラバーサル」とは何かを説明する。これは、Webサーバー上のファイルやディレクトリ構造を攻撃者が本来意図されていない方法で操作できてしまう脆弱性を指す。例えば、ウェブサイトのURLに「../」(親ディレクトリを指す記号)のような特殊な文字列を挿入することで、通常アクセスできないはずのサーバー内の別のディレクトリにあるファイルを参照したり、読み込んだりすることが可能になる場合がある。これにより、本来公開されていない設定ファイルやパスワード情報などが漏洩する危険性がある。単独でも危険な脆弱性だが、今回はこれだけにとどまらない深刻な影響がある。
次に、「リモートコード実行(RCE)」について理解しよう。これは、攻撃者が遠隔地から(つまりインターネットを通じて)サーバー上で任意のプログラムコードを実行できてしまう最も危険な脆弱性の一つだ。もしRCEが成功すれば、攻撃者はサーバーを完全に掌握し、データの改ざん、削除、盗用、さらには他のサイバー攻撃の踏み台として利用するなどが可能となる。今回のWordPressの脆弱性は、このディレクトリトラバーサルが「リモートコード実行」にまで発展する可能性があるため、極めて重大だとされている。
そして、「認証不要」という点も重要だ。これは、攻撃者がWordPressの管理画面にログインしたり、特別な権限を持ったりすることなく、誰でもこの脆弱性を悪用できてしまうことを意味する。つまり、インターネットに公開されているWordPressサイトであれば、すべてのサイトが攻撃対象となる可能性がある。ログインの手間なく、極めて危険なリモートコード実行が可能な状態であるため、CISA(米国のサイバーセキュリティ・インフラセキュリティ庁)は、この脆弱性(CVE-2026-87902)を「実際に悪用されている脆弱性」のリストに加えており、既に攻撃ツールが出回ったり、実際に攻撃が試みられたりしていることが観測されている。CVSSスコア(脆弱性の深刻度を数値化したもの)も9.2と「緊急(Critical)」に分類されている。
この脆弱性は、WordPressのバージョン4.7.0から7.1.1までのすべてに影響を及ぼす。したがって、WordPressを利用しているほぼすべてのサイト運営者、ホスティングプロバイダー、さらには開発環境や社内環境でWordPressを使っているDevOpsチームなども、この情報に注意を払う必要がある。
具体的に、この脆弱性がどのように機能するのかを見てみよう。問題は、WordPressがページのテンプレートを解決する際に使われる「get_page_template()」という関数にある。この関数の欠陥により、認証されていないリクエスト(ログインしていないユーザーからのリクエスト)であっても、アクティブなテーマディレクトリの外部にある、攻撃者が選択した任意のPHPファイルを読み込ませることが可能になってしまうのだ。これは「ローカルファイルインクルージョン」(LFI)という種類の脆弱性であり、Webアプリケーションがサーバー上のファイルを誤って読み込んでしまうことで発生する。
LFI自体も危険だが、これがRCEにつながるにはいくつかの「条件」がある。しかし、「条件付き」だからといって無視してよいわけではない。これらの条件は、多くの一般的なWordPress環境で満たされてしまう可能性が高いからだ。主な条件は以下の三つである。第一に、現在有効なテーマ(親テーマまたは子テーマ)の最上位ディレクトリ名が「page-」で始まっていること。例えば「page-templates/」のようなディレクトリ名を持つテーマがこれに該当する。これは、WordPressのデフォルトテーマであるTwenty TwelveやTwenty Fourteen、人気のテーマであるNeve、Hestia、Sydneyなどにも含まれている一般的なパターンだ。第二に、サーバー上に「pearcmd.php」のような、攻撃者が与える引数に基づいて動作する読み込み可能なPHPファイルが存在すること。pearcmd.phpはPHPのパッケージ管理ツールPEARに関連するファイルで、特定のサーバー設定下で悪用される可能性がある。第三に、PHPの設定「register_argc_argv」が「On」になっていること。この設定は、コマンドライン引数をスクリプトが受け取れるようにするもので、公式のPHP Dockerイメージや、PHP 8.5より前のバージョンのcPanelデフォルト設定など、多くの環境でOnになっている。これらの条件がすべて揃うと、攻撃者はLFIを通じてpearcmd.phpのようなファイルを悪用し、サーバー上で任意のコードを実行できてしまう。
この脆弱性への対策は、まずWordPressコアを最新の修正バージョンにアップデートすることである。現在の最新安定版であれば7.1.2がこれにあたるが、古いWordPressバージョンを利用している場合でも心配はいらない。この脆弱性に対する修正は、4.7.37までの古いブランチにもバックポート(過去のバージョンへの修正適用)されているため、バージョン7.1にアップデートできない環境でも、各ブランチ向けの修正版(例えば6.9.9や4.7.37など)にアップデートすればよい。
アップデート手順は以下の通りだ。まず、WordPressのファイルとデータベースのバックアップを必ず取得しておく。これにより、万が一アップデートに失敗しても元の状態に戻せる。次に、サーバーに直接アクセスできる場合は、WP-CLI(WordPressコマンドラインインターフェース)を使ってwp core updateコマンドを実行するのが推奨される。ホスティングサービスの管理画面(cPanelやPleskなど)からWordPressを管理している場合は、サービスが提供するワンクリック更新機能を利用してアップデートする。アップデート後は、WordPressの管理画面またはWP-CLIで、バージョンが修正版に更新されていることを確認する。将来のセキュリティパッチも迅速に適用されるよう、wp-config.phpファイルにdefine( 'WP_AUTO_UPDATE_CORE', 'minor' );という記述を追加して、マイナーリリース(セキュリティ修正を含む)の自動更新を有効にしておくことが強く推奨される。
アップデートだけでなく、さらなるセキュリティ強化策(ハーデニング)を講じることも重要だ。これは、今回の脆弱性だけでなく、将来発生するかもしれない新たな脆弱性に対する防御力を高めるために役立つ。例えば、WordPressのwp-content/uploads/ディレクトリ内でのPHPファイルの実行を禁止する設定は、不正なPHPファイルのアップロードによる攻撃を防ぐために有効である。ただし、今回の脆弱性は既存のPHPファイルを悪用するため、この対策が直接的な緩和策とはならないが、一般的な衛生対策として実施すべきだ。また、WordPressの管理画面からテーマやプラグインのファイルを編集する機能を無効にする設定(wp-config.phpにdefine( 'DISALLOW_FILE_EDIT', true );を追加)も推奨される。今回の脆弱性に関しては、リモートコード実行の前提条件を破壊する対策も考えられる。具体的には、PHPの設定でregister_argc_argv = Offを設定し、サーバー上からpearcmd.phpが見つかる場合は、不要であれば削除することを検討すべきだ。これらの対策はLFI自体を解決するものではないが、リモートコード実行に至る経路を断ち切る助けとなる。さらに、WAF(Webアプリケーションファイアウォール)を導入することも有効だ。CloudflareやWordfenceのようなWAFは、悪意のあるリクエストがWordPressに到達する前にブロックできる場合がある。最後に、wp-login.phpやxmlrpc.phpといった管理関連のエンドポイントへのアクセスを、特定のIPアドレスからのみ許可するように制限する設定も、攻撃対象を大幅に縮小する効果がある。
アップデート時に発生しうる一般的な問題としては、WP-CLIがインストールされていない、ファイル権限の問題でアップデートが失敗する、アップデート後にサイトが正常に表示されなくなる、などが挙げられる。WP-CLIは公式ガイドに従ってインストールし、ファイル権限はWebサーバーユーザー(例: www-data)がWordPressのファイルを所有するように修正する。サイトが壊れた場合は、バックアップから復元し、プラグインやテーマの競合がないかを確認する必要がある。マネージドホストを利用している場合は、ホスト側で既に修正が適用されている可能性もあるため、サポートに確認するとよい。
この認証不要のディレクトリトラバーサルからリモートコード実行に至る脆弱性は、WordPressの広大なインストールベースを考えると、非常に迅速に悪用される種類の問題である。システムの健全性を保つためにも、WordPressコアを修正バージョンに直ちにアップデートし、可能であればregister_argc_argv設定を見直し、将来のセキュリティパッチが自動的に適用されるよう設定することが重要だ。今回の脆弱性は既に悪用が確認されているため、アップデートの前後でサーバーのアクセスログを注意深く確認し、不正なアクセスがないかを確認することも強く推奨する。