WordPressは最新版にしなくても、過去メジャーバージョンのセキュリティリリース最新版にしていれば脆弱性はない


この記事は2018年12月に掲載されたものです。
状況が変わったり、リンク先が変わっている可能性があります。

脆弱性があるため、WordPressは常に最新バージョンにすることが推奨されているが、それだとサーバ要件も高くなり、カスタマイズしたものが動かなくなることもある。新しい機能を必要としない人にとって、最新バージョンへ強制的にアップデートされるのは苦痛で、なんとかならないかと思っていた。

「WordPress Codex 日本語版」の「WordPress バージョン一覧」を見ると、「開発やセキュリティフィクスなどのメンテナンスが行なわれるのは4.9.xのみです」と書かれているが、実際は3.7.x以降の各メジャーバージョンで、新しいメジャーバージョンがリリースされたあとも、綿々とセキュリティリリースが続いていることがわかる。

2013年10月24日にリリースされた3.7「Basie」は、わずか2か月後の13年12月12日に3.8「Parker」にメインストリームの座を奪われているが、セキュリティリリースが現在まで続き、18年7月5日に3.7.27がリリースされている。他のメジャーバージョンに関係ないメンテナンスリリースの場合は別として、セキュリティリリースは必ず出ているようだ。

つまり、新機能さえ求めなければ、セキュリティリリースが継続して提供されている過去のメジャーバージョンを使えばいいのだ。無理に最新版にしなくても、きちんとリリース情報を確認して、過去バージョン用のセキュリティリリースを適用出来るのなら、脆弱性はないと言える。

この場合のマイナーバージョンアップは、管理画面からではなく手動になる。WordPressの全ファイルを入れ替える必要はなく、前のマイナーバージョンから更新された差分ファイルだけを上書きしてやればよい(カスタマイズしている場合は再度カスタマイズすること)。

差分ファイルは、「WordPress バージョン一覧」のバージョン番号からリンクしている詳細ページ末尾の「改訂されたファイル一覧」に記されている。3.7.27だと、次の2ファイルだ。

wp-includes/functions.php
wp-includes/post.php

このため、3.7.26から3.7.27へアップデートするときは、リリースぺージから当該バージョンをダウンロードして、この2ファイルだけ上書きしてやればよい。もっと古いバージョンから行なう場合は、途中の差分を確認しながら進める。英語ページは全バージョンが掲載されているが、日本語ページは掲載が止まっているものがある。日本語版がよいなら、掲載が続いている4.1「Dinah」以上にすべきだろう。

なお、4.1.xは途中の掲載が飛んでいるが、過去に更新されたファイルを最新版にあるファイルですべて上書きすればいい。この記事を読んで、過去バージョンをいまからアップデートしようと思った方も同様だ。順序を追って更新していく必要はなく、同一ファイルなら最新のものがあればいい。使用中のバージョンにあって最新版にないものは、不要になって削除されたものなので削除してよい(削除された場合も「改訂されたファイル一覧」に載っている)。