WordPressにCVSS 9.2の脆弱性、2016年以降の全バージョンに影響
A WordPress vulnerability scored 9.2/10 is present in all versions since 2016
WordPressのpage-template解決処理に認証不要のpath traversal脆弱性(CVE-2026-87902、CVSS 9.2)が見つかった。攻撃者はget_page_template()を悪用し、テーマディレクトリ外の任意の.phpファイルを読み込ませることができる。テーマがpage-で始まるディレクトリを持ち、サーバー上に読み取り可能な.phpファイルが存在する場合、RCEに至る可能性がある。Twenty TwelveやTwenty Fourteen、Neve、Hestia、Sydneyなどが該当する。修正版は7.1.2で、4.7までバックポートされた。
認証されていない攻撃者は、get_page_template()のページテンプレート解決を通じて、アクティブなテーマディレクトリ外にある任意の読み取り可能なローカル.phpファイルをインクルードさせることができる。
HNでの議論
128- zelphirkalt
こういうのが理由で、外から簡単に到達できるWebサーバーは片っ端から /something/something.php?somearg=someval みたいなのにスパムされるんだよ。Webの歴史全体を通して、どのソフトウェアが一番悪用されてきたかと聞かれたら、WPは間違いなく上位候補に入るだろうね。おそらくMS TeamsやSharepoint、その手のやつのすぐ後くらいには。
- beezle
「脆弱性の修正を含むWordPress 7.1.2がリリースされ、古いブランチのユーザーへの配慮として、修正は4.7までのすべてのブランチにバックポートされました」
配慮ということで、WPについて悪いことを1日に1つ以上言わないようにしている。ちなみにだけど、インストールの約3分の1は最近の7ブランチではないんだよね。
- cyphar
こういうバグの病理はあらゆる種類のプログラムで信じられないほどよくある話で、これが(自己宣伝で恐縮だけど)僕がlibpathrs[1]を書いた理由なんだ。
残念ながら、ほぼすべての言語の標準ライブラリはファイルを扱うための適切な抽象化を提供していない(主眼がスコープ付きパスやファイルディスクリプタ/ファイルハンドルではなくグローバルパスにある)から、こういうバグが数週間おきに次々と出てくるのも不思議じゃない。
自分のコードベースからこういうのを排除するには、ファイルの扱い方を意識して根本から考え直す必要がある。書いているプログラムがroot権限を持つなら、/procやその他の擬似ファイルシステムへの誤った書き込みにはもっと注意しないといけない。
- random_savv
CodexにうちのサイトをHugoテンプレートとして書き直してもらって、静的ホスティングできるようになってWordpressを捨てられたのは本当に良かった。ストレスがめちゃくちゃ減ったよ!
- Luker88
Wordpressは、プログラミングを知らなくてウェブサイトが欲しい人たちの定番だった。
AIで何か変わったのか?自分の場合はwpからrust+dioxusへの移行を助けてくれたけど、僕はプログラマーだからね。
- chrismorgan
パッチ(https://github.com/WordPress/wordpress-develop/compare/7.1.1... から特定):
https://github.com/WordPress/wordpress-develop/commit/9c4e85...
- vntok
皮肉なことに、影響を受けた関数のひとつの公式ドキュメントページにある9年前のこのコメントが、この重大なセキュリティ欠陥の性質と対処法の両方を完璧に言い表している:
> Paul Ryan 9年前
> locate_template() はディレクトリトラバーサル攻撃を防がない点に注意してください。ユーザー提供のテンプレート名をこの関数に渡す場合は、それが3つの適切な場所(アクティブテーマディレクトリ、親テーマディレクトリ、または /wp-includes/theme-compat/ ディレクトリ)のいずれかからのものであることを必ず確認してください。
https://developer.wordpress.org/reference/functions/locate_t...
- iLoveOncall
WordPressは本当にクソみたいなソフトウェアで、プラグインを開発したことがある人ならそれがものすごくよく分かる。
ドキュメントは、それがいかに絶対的なスパゲッティコードの塊であるかを完璧に反映していて、プラグイン開発で常に使うメソッドの半分はドキュメント化もされていなければ、型すら付いていない。まさに使えたものじゃない。
WordPressがエコシステムのおかげで優れているのは分かっているけど、本当に、本当に、使わないほうがいい。