公開日
2026年10月、Web サイトでよく使われている PHP に、重大な脆弱性(CVE-2026-109618、CVE-2026-109619)が見つかりました。 外部から、サーバー上でプログラムを実行されるおそれがあるものです。 IPA(情報処理推進機構)などからも、早めの対応が呼びかけられました。
いくつかのサイトの保守をさせていただいています。どのサイトもレンタルサーバーを使っていて、PHP の更新などは基本的にサーバー会社にお任せしていたので、これまで特別な対応をしたことはありませんでした。
今回は影響が大きかったので、修正版がサーバーに入るまでの間、次の対応を行いました。
今回は、首相が X で注意を呼びかけたこともあり、ニュースでも大きく取り上げられました。お客様へ報告したときも、すでに事情をご存じの方が多く、説明がめちゃくちゃ楽でした。
あわせて、このサイトの PHP も 8.3 から 8.4 に上げました。切り替える前に確かめたことと、切り替えたあとに確かめたことをまとめます。
PHP は、バージョンごとにサポートの期限が決まっています。期限が過ぎると、脆弱性が見つかっても直してもらえません。
| PHP 8.3 | 不具合の修正は 2025年末で終了。セキュリティの修正は 2027年末まで |
|---|---|
| PHP 8.4 | 不具合の修正は 2026年末まで。セキュリティの修正は 2028年末まで |
| PHP 8.5 | 不具合の修正は 2027年末まで。セキュリティの修正は 2029年末まで |
※ PHP の公式サイトの予定です。
使っているレンタルサーバーでは、PHP 8.5(CGI 版)まで選べました。今回は 8.4 にしています。8.5 でも問題になる書き方がないことは、あわせて確認しました。
php -l でチェックしました。? を付けずに = null で null 許容にする書き方などが、使われていないか確かめました。(integer) などの古い型変換も確かめました。.htaccess に書いた PHP の設定(php_value / php_flag)が効きません。設定が抜け落ちないよう、書かれていないことを確かめました。どれも問題はありませんでした。
切り替えは、レンタルサーバーの管理画面から行いました。反映されるまで、10分ほどかかります。切り替えた直後に確かめると、まだ前のバージョンで動いていることがあるので、少し待ってから確認しました。
サーバーの保守は地味な作業で、普段はなかなか気づかれないものです。今回はニュースのおかげで、思いがけず感謝の言葉もいただけて、ちょっと得をした気分でした。
| サーバー | PHP 8.4(CGI 版) |
|---|---|
| 確認 | MAMP(手元の環境)php -l(構文チェック)curl(本番の表示の確認) |