メニュー 一覧

平日 10:00〜17:00 受付中

  • スマートフォンの場合、タップで電話がかかります。「ホームページを見た」とお伝えいただけるとスムーズにご案内できます。

PHPの脆弱性「php2shell」に一晩で対応 ― 公式修正の対象外だったPHP 5.6〜8.1にもバックポートを適用

PHPに深刻な脆弱性「php2shell」が見つかり、2026年10月22日(日本時間23時)にセキュリティ修正が公開されました。ところが公式に修正されたのは、サポート期間中の PHP 8.2 以降だけ。PHP 8.1 以前で動いているサイトは、修正を受けられないまま取り残される事態になりました。

弊社では一晩かけて、PHP 5.6 / 7.0 / 7.1 / 7.2 / 7.3 / 7.4 / 8.0 / 8.1 のすべてにセキュリティ修正を適用し、管理している数十台のサーバーの更新を翌10月23日の朝8時までに完了しました。これは、弊社が採用している商用の延命PHPで修正版が出るまでの暫定対応です。脆弱性にさらされる時間を少しでも短くするため、自分たちで修正を組み込みました。この記事では、その夜の対応と、その後の切り替えを時系列でご紹介します。

対応の時系列

時刻出来事・対応
10月22日 午前「23時にPHPのセキュリティ修正が公開される」という情報をキャッチ
10月22日 日中出回っていた暫定対策(php.ini の設定変更、マルチパート形式のPOSTの制限)を各サーバーに適用
10月22日 23時修正が公開。対象は PHP 8.2 以降のみと判明
10月23日 深夜1時すぎPHPパッケージのメンテナーとして知られる Surý 氏が、古いバージョン向けに修正を独自にバックポートしていることを知る
10月23日 未明〜明け方PHP 5.6〜8.1 の各バージョンにバックポートを適用し、順次サーバーを更新
10月23日 朝8時管理しているすべてのサーバーの更新が完了。暫定対策を解除
その後採用している商用の延命PHPで修正版がリリースされ、検証のうえ、自分たちで組み込んだ暫定版から切り替え

まずは暫定対策で守りを固める

修正の公開を待つあいだ、攻撃の入り口をできるだけ狭めるため、出回っていた暫定対策をすぐに適用しました。php.ini の設定変更と、マルチパート形式(multipart/form-data)のPOSTリクエストの制限です。

ただし、マルチパート形式のPOSTを止めると、画像のアップロードや一部のフォームなど、サイトの機能も使えなくなります。あくまで「本当の修正が入るまでの時間稼ぎ」で、長く続けられる対策ではありません。

23時、修正は「PHP 8.2 以降だけ」

10月22日の23時に修正が公開されましたが、対象はサポート期間中の PHP 8.2 以降だけでした。正直に言って、ショックでした。

弊社がお預かりしているサーバーには、EC-CUBE や古い WordPress など、すぐには新しいPHPに移行できないサイトが数多くあります。PHP 5.6 や 7.x で動いているこうしたサイトは、公式の修正だけでは守れません。暫定対策を外せないまま、機能を制限した状態が続くことになります。

深夜1時、バックポートの存在を知る

日付が変わった10月23日の深夜1時すぎ、PHPパッケージのメンテナーとして知られる Surý 氏が、サポートの終わった古いバージョン向けに修正を独自にバックポート(新しいバージョン向けの修正を古いバージョンに移植すること)していることを知りました。

そこから、PHP 5.6 / 7.0 / 7.1 / 7.2 / 7.3 / 7.4 / 8.0 / 8.1 のそれぞれに修正を適用してビルドし、動作を確認したうえで、サーバーを1台ずつ更新していきました。

朝8時、すべてのサーバーの更新が完了

大手のレンタルサーバー会社に比べれば少ない台数ですが、それでも数十台。久しぶりの徹夜になりましたが、10月23日の朝8時にはすべてのサーバーの更新が終わり、サイトの機能を制限していた暫定対策も解除できました。

私たちが確認した範囲では、古いPHPへのセキュリティ修正を、主要なレンタルサーバー会社より早く適用できました。古いバージョンのPHPを自分たちで組み立てて(ビルドして)確かめられる体制があるからこそできた対応です。

その後、商用の延命PHPの修正版に切り替え

一晩で組み込んだ修正は、あくまで暫定対応です。弊社の延命PHPは、実績のある商用製品を採用しています。ふだんは、その提供元が修正を移し替え、検証したものを使っています。今回は、その修正版が出るまでの間も、お預かりしているサイトを脆弱性にさらしたままにしないため、自分たちで修正を組み込みました。

その後、商用の延命PHPで修正版がリリースされたため、検証したうえで、暫定版から正式な修正版に切り替えました。「提供元の修正を待つ」だけでなく、「待っている間をどう守るか」まで対応することで、脆弱性にさらされる時間をできるだけ短くすることを大切にしています。

古いPHPのサイトをお持ちの方へ

今回のように、PHPの公式な修正はサポート中のバージョンにしか提供されません。PHP 8.1 以前で動いているサイトは、次に重大な脆弱性が見つかったとき、同じように取り残されるおそれがあります。

弊社の「PHP延命ホスティング」では、サポートが終了したPHPにもセキュリティ修正を取り込んだ「延命PHP」を、サーバー運用込みで提供しています。移行の準備が整うまでのあいだ、古いPHPのサイトを安全に動かし続けたい方は、お気軽にご相談ください。

※ 延命PHPで対策できるのはPHP本体の脆弱性です。EC-CUBE や WordPress などアプリ本体の脆弱性は、別途の対策が必要です。

シェアしていただけると励みになります