2026年10月21日、PHPプロジェクトはPHP自体の2つの重大な脆弱性に対する修正をリリースしました。どちらもCVSS 9.2と評価されており、発見した研究者らはこれらをphp2shellと呼んでいます。問題はPrestaShopやモジュールにあるわけではありませんが、すべてのPrestaShopストアがPHP上で稼働しているため、実質的にすべてのストアに影響が及びます。以下に、現状、修正されたPHPバージョン、そして今すぐ行うべき対策について説明します。
問題の内容とは
これら2つの脆弱性は、PrestaShop独自のコードが実行される前段階の層であるPHPランタイムに存在します。発表によると、攻撃者はこれを利用してPHPプロセスをクラッシュさせたり、機密データを読み取ったり、最悪の場合、ログインせずにサーバー上でコードを実行したりすることができます。
- **CVE-2026-109618:**PHPのメモリが枯渇した際、リクエストデータが半初期化状態で残される可能性があり、その後のクリーンアップ処理でその不完全なデータが有効なものとして扱われてしまいます。
- **CVE-2026-109619:**メモリが解放された後も内部のリクエスト状態が残存するため、同じPHPワーカーに対する後続のリクエストがその古い状態を利用してしまう可能性があります。
ウェブリクエストを処理するすべてのPHPインストール環境が危険にさらされています:PHP-FPM、mod_phpを使用するApache、php-cgi、FrankenPHP、LiteSpeed。リスクが最も高いのはmod_phpです。
PrestaShopのアップデートでは解決しない理由
PrestaShopやモジュールをアップデートしても、この問題は修正されません。アプリケーションコードが実行される前に発生する攻撃を、アプリケーション内部の保護で阻止することはできません。唯一の真の解決策は、サーバー上のPHPバージョンをアップデートすることです。
修正されたPHPバージョンは?
| PHPブランチ | 修正済みバージョン |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
PHP 7.4、8.0、8.1については、PHPプロジェクトが最小限のバックポートを公開しています。Linuxディストリビューションによっては、バージョン番号を変更せずに修正を適用する場合があるため、古く見えるバージョンでもすでにパッチが適用されている可能性がある点にご注意ください。そのため、番号だけで判断せず、ホスティング会社に確認を取る必要があります。
今すぐ行うべきこと
1. PHPバージョンを確認する
PrestaShopのバックオフィスで、**[高度なパラメータ] > [情報]**に移動します。そこで、ストアがどのPHPバージョンで稼働しているかを確認できます。
2. ホスティング会社に書面での確認を求める
ホスティングプロバイダーに連絡し、CVE-2026-109618およびCVE-2026-109619の修正がサーバーに適用されているかどうかを問い合わせてください。回答は書面でもらうようにしてください。
3. ご自身のサーバーを管理していますか?
- ディストリビューションまたは公式PHPリリースから、アップデートされたPHPパッケージをインストールしてください。
- すべてのPHPプロセスを再起動します:PHP-FPMプール、Apache、LiteSpeed、FrankenPHPワーカー。インストールされただけで読み込まれていないアップデートは、あなたを守りません。
- リリース当日、PHPプロジェクトはボランティアが運営する
rpms.remirepo.netリポジトリを待たないよう助言し、ディストリビューションのパッケージかソースからのビルドを推奨しました。 - Dockerを使用していますか?アップデートされたベースイメージ上でイメージを再ビルドし、再度デプロイしてください。
4. まだPHP 8.1以前を使用していますか?
お使いのPHPバージョンにパッチが適用されているかどうかをホスティング会社に確認してください。PrestaShopを新しいPHPをサポートするバージョンにアップグレードすることは、緊急の修正ではなく、長期的な別の作業となります。今後の計画として、PrestaShop 9はPHP 8.1から8.5までをサポートし、PHP 8.2は2026年12月31日にサポート終了(EOL)を迎えます。PrestaShop 1.7および8.xのストアは通常、まだPHP 7.xまたは8.1で稼働しています。
まだアップデートできない場合の暫定的な対策
これらの対策は技術チーム向けです。まずステージング環境のコピーでテストしてください。これらはリスクを軽減しますが、PHPのアップデートに代わるものではありません。
CVE-2026-109618への対策:
post_max_sizeを下げます:ストアがアップロードを受け付けない場合は8M、受け付ける場合は32Mが推奨されています。upload_max_filesizeはそれよりも低い値に維持してください。- ウェブサーバーやリバースプロキシでもリクエストサイズの制限を強制してください。
CVE-2026-109619への対策:
php.ini、PHP-FPMプール、またはサーバー設定でsession.upload_progress.enabled=0を設定し、すべてのワーカーを再起動します。ini_set()や.user.iniだけでは不十分です。- PHP 8.5では、
fatal_error_backtraces=0も設定してワーカーを再起動してください。
error_reporting、display_errors、または @ でエラーを隠しても、何の解決にもなりません。対策の完全なリストは、公式のPHPセキュリティアドバイザリに記載されています。
Webアプリケーションファイアウォール(WAF)は有効ですか?
Cloudflareはphp2shell専用のWAFルールを展開しており、10月21日以降デフォルトで有効になっています。有料プランをご利用の場合は、マネージドールールセットが**ブロック(block)**に設定されていることを確認してください。WAFはそこを通過するトラフィックしか保護しないため、サーバーがWAFプロバイダーからのウェブトラフィックのみを受け入れるように設定されていることを確認してください。WAFは追加の防御層であり、PHPアップデートの代わりにはなりません。
ヘルプが必要ですか?
サーバーにパッチが適用されているかどうかわからない場合や、古いPHPバージョンをまだお使いですか?私たちがお客様のPHPバージョンと設定を確認し、ホスティング会社に適切な質問を投げかけ、サポートされているPHPおよびPrestaShopバージョンへの移行計画をサポートします。当社のセキュリティサービスの詳細を見る、アップグレードを計画する、または質問する。
出典:build.prestashop-project.orgの「Critical PHP security updates: what PrestaShop users need to know」(2026年10月21日)、およびCVE-2026-109618とCVE-2026-109619に関するPHPセキュリティアドバイザリ。