本文へ
ハクソク

世界を動かす技術を、日本語で。

WordPress: 認証されていないパス・トラバーサルによる条件付きRCE

元記事: 原文(github.com)

概要

  • WordPressの get_page_template() 関数に 脆弱性 が存在
  • 攻撃者が任意の .phpファイル をテーマ外から読み込ませる可能性
  • 特定の テーマ構造 と サーバー環境 が条件
  • RCE(リモートコード実行) に発展するリスク
  • WordPress 7.1.2 で修正済み、古いブランチにも修正が適用

WordPress get_page_template() 脆弱性の概要

  • 未認証の攻撃者 によるget_page_template()の悪用リスク
  • page- で始まるディレクトリがテーマ直下に存在する場合が条件
    • 例: page-templates ディレクトリ
  • 影響を受けるテーマ例:
    • Twenty Twelve
    • Twenty Fourteen
    • サードパーティ製: Neve, Hestia, Sydney
  • サーバー上に 攻撃者が選択したローカル .phpファイル が存在し、Webサーバーアカウントで読めることが必要条件
  • pearcmd.php (PEAR)を利用したRCEへの移行が可能
    • register_argc_argv がOnの場合、悪用されるリスク

影響範囲と環境

  • Docker公式phpイメージ が影響対象
  • cPanel のデフォルト設定(PHP 8.5未満)も影響
  • サーバー環境やテーマ構成によっては、 RCE(リモートコード実行) に発展
  • 攻撃成功には複数の事前条件が必要

対策とアップデート情報

  • WordPress 7.1.2 にて本脆弱性を修正
  • 4.7以降の全ブランチ にも修正をバックポート済み
  • 早急な アップデート 推奨
  • 脆弱性発見・責任ある開示: Robert Ressl

管理者への推奨対応

  • 利用中テーマの ディレクトリ構造 を確認
  • サーバー上の 不要な.phpファイル の削除・権限見直し
  • register_argc_argv 設定の確認と必要に応じてOffへ変更
  • WordPress本体のバージョンアップ を最優先で実施
  • 影響を受けるテーマの アップデート または 変更 検討

提供: ハクソク · 要約更新:

AIによる日本語要約です。内容は原文とあわせてご確認ください。

Hacker Newsの議論を読む

Hackerたちの意見

うーん、これが原因で古いテーマに予期しないアップデートがあったのかも。

└

ちょっと分からないんだけど、パッチを適用するだけでいいのか、それともテーマが脆弱かどうかもチェックしなきゃいけないの? 編集: パッチ自体を見ると、根本的な原因を修正してるみたいだから、テーマが何をしてるかは関係ないはず。でも、もしかしたら読み間違えてるかも。

アイロニックだけど、影響を受けた関数の公式ドキュメントページにあるこの9年前のコメントが、この重大なセキュリティホールの性質と対策を完璧に説明してるんだよね。 > Paul Ryan 9年前 > locate_template() はディレクトリトラバーサル攻撃を防がないから、ユーザー提供のテンプレート名を関数に渡す場合は、必ずそれが3つの適切な場所(アクティブテーマディレクトリ、親テーマディレクトリ、または /wp-includes/theme-compat/ ディレクトリ)からのものであることを確認してね。

└

アハハ、昔クライアントのために手動でテーマをパッチしたのを思い出すな。あの頃は、コアチームが何らかの理由でセキュリティホールを残しておいて、彼らのクソコードの山の周りに3つのフレームワークが必要になるようにしてたんだよね。

└

この脆弱性がどうやって見つかったのか、謎だよね。/sarcasm

└

これを「修正」するために、locate_template_safe()関数が追加されるのかな? :D

これが理由で、簡単にアクセスできるウェブサーバーは /something/something.php?somearg=someval でスパムされるんだよね。もし予想するなら、ウェブの歴史の中で最も悪用されてきたソフトウェアはWPがトップ候補の一つだと思う。MS TeamsやSharepointみたいなやつのすぐ後にね。

└

WPは確実にトップ候補の一つだね そして、その親戚みたいなJoomlaも。

└

確かに、構造的な問題もあるよね。インターネットで最も人気のあるものは、最も攻撃されやすくて、最も悪用されやすいから、当然、最も悪用されるんだよ。

└

公開HTTPサーバーのアクセスログを見るのは本当に面白い。スクリプトが成功率を最適化してるから、送信されるリクエストの種類から実際に何があるのかが分かる。もし我々がついに悪意のあるAGIを実現したら、それはパッチが当てられていないWordPress WooCommerceのインスタンスを通じて広がるだろうってのは明らかだね。

└

ウェブの歴史の中で最も悪用されやすいソフトウェアを推測するなら、WPは間違いなく上位候補の一つだと思う。HNの人たちはWordPressについて悪口を言うのが好きだよね。何年経っても、Appleの話が出るたびに「壁のある庭!」って叫ぶのと同じくらいの反射的なものだよ。でも、インターネット上の最大のウェブサイトのいくつかはWordPressを使ってるし、もっと重要なのは、インターネット上の最大のハッキングターゲットのいくつかもWordPressを使ってるってこと。代表例はwhitehouse.govだね。やることが分かってるなら、WordPressはいいよ。他の技術でも同じことが言えるけど、HNの人たちは良いものと悪いものを一緒にまとめて考えたがるから、すべてが二元的になっちゃうんだよね。

└

確かに、ウェブ上でトップクラスのCMSの一つだよね(2027年にはそうじゃないかもだけど)。PHPとMySQLだから、歴史的に見ても脆弱性が多かったし。

Hacker Newsで議論の続きを見る

同じ出典の記事