【今すぐ更新】WordPress 5.4.1 パーマリンク設定の厳密化により、情報漏洩脆弱性が改善された
WordPress でアップデートがあり、最新版 5.4.1 が公開されました。このリリースにはいくつかの脆弱性改善がありますので、今すぐ更新が必要です。今回はその中の一つ、
Props to ka1n4t for finding an issue where certain private posts can be viewed unauthenticated
を取り上げます。
![](/images/icon-woman.png)
何が問題だった?
WordPress5.4以前では、特定の条件で、非公開記事がログインしなくても閲覧できる、という脆弱性がありました。この記事を執筆している時点(2020年5月2日午前8時)では、条件の詳細は公開されていませんが、こちらで検証すると、少なくとも以下の状態だと発生しました。
パーマリンク設定を日時だけにしている(= ID・スラッグなど一意にする項目が無い) AND 同じ日時で、公開記事と非公開記事を投稿する
パーマリンク設定は、通常は投稿IDやスラッグなどを入れて、記事が一つだけ選ばれるようにするのですが、
/* よくない方法です。この設定にはしないでください。 */ /%year%/%monthnum%/%day/%hour%%minute%%second%/
のように、日時だけでもWordPress5.4以前は動いていました。本来は記事毎に異なるパーマリンクが割り当てられるはずですが、このパーマリンク設定(日時だけの設定)だと、複数の記事に同じパーマリンクが割り当てられる可能性がありました。そして同じパーマリンクが割り当てられた記事の公開設定が異なる場合に、情報漏洩が起こり得ます。
非公開記事はログインしないと閲覧不可 [望ましい状態]
![非公開記事。左側はログイン状態。右側は非ログイン状態。非公開記事。左側はログイン状態。右側は非ログイン状態。 非公開記事。左側はログイン状態。右側は非ログイン状態。](/images/post-c.jpg)
WordPressでは、投稿を非公開に設定できます。ログインしたユーザーだけ閲覧可能な記事を作成できます。この場合、ログインしていない人がその記事を閲覧しようとしても not found となります。
ブラウザ2つをキャプチャした画像の、左側はログイン状態。右側は非ログイン状態です。
これが、望ましい状態です。
パーマリンク設定が日時だけの場合、望ましい状態にならないことがある
では、「パーマリンク設定を日時だけにする」「同じ日時で、公開記事(投稿A)と非公開記事(投稿B)を投稿する」場合を調べてみます。
この場合は、「投稿Aは非ログインでも見える、投稿Bは非ログインだと見えない」が本来は期待されています。
![](/images/icon-man.png)
![公開記事と非公開記事。左側はログイン状態。右側は非ログイン状態。 公開記事と非公開記事。左側はログイン状態。右側は非ログイン状態。](/images/post-ab.jpg)
- 投稿AのURLを見に行くと投稿Aの内容を閲覧できる
- パーマリンク設定が日時だけなので、投稿Aも投稿Bも同じURL
- 投稿B(非公開記事)の内容も閲覧できる
という結果になりました。
キャプチャ画像は、WordPress5.4をローカルにインストールし、無線LANを無効化した状態で撮影しています。
WordPress5.4.1で改善された
この脆弱性に対して、WordPress5.4.1では、日時だけのパーマリンク設定を認めない=パーマリンク仕様を厳密化するにより対処されました。(もちろんドキュメントでは「日時だけのパーマリンク設定をしないように」という説明になっていますが、WordPress5.4では、日時だけのパーマリンク設定でも動作していた。)WordPress5.3.3等、以前のバージョンにもアップデートが行われています。
なので、バージョンアップすれば、この脆弱性には対処できることになります。WordPressフォーラムではバグ報告カテゴリーに「wordpress 5.4.1 からの障害について」が投稿されていますが、バグ・不具合ではなく、仕様厳密化(脆弱性修正)と思われます。
![](/images/icon-man.png)
日時だけのパーマリンク設定をしていた場合は設定変更が必要
WordPress5.4.1のバージョンアップでは、日時だけのパーマリンク設定を認めないようになりました。しかし、日時だけのパーマリンク設定をしていた場合に、推奨パーマリンク設定への変更はしないようです。このため、日時だけのパーマリンク設定をしていた場合に、WordPressの管理画面から、パーマリンク設定を変更する必要があります。
日時だけのパーマリンク設定から変更しないままだと、許可されていないパーマリンク設定のため、ウェブサイトが正しく表示されなくなります。
まとめ
- WordPress5.4.1は脆弱性対策アップデート
- 「日時だけのパーマリンク設定」だと情報漏洩リスクがあり、バージョン5.4.1で改善された
- 「日時だけのパーマリンク設定」にしていた場合は、アップデート後にパーマリンク設定変更する必要がある
![](/images/icon-man.png)