
EOLプラットフォーム向けのPHP CVE-2026-109618 / CVE-2026-109619(RCE、CVSS 9.2)の非公式パッチ:CentOS/RHEL 7上のPHP 7.3(Remi)、Amazon Linux 2上のPHP 5.4、Amazon Linux 1上のPHP 5.3
2026-10-21 に公表された 2 件の重大な未認証リモートコード実行脆弱性に対する、PHP セキュリティチームの最小限の緩和策の非公式バックポートです:
| CVE | アドバイザリ | 概要 |
|---|---|---|
| CVE-2026-109618 | GHSA-w8hw-w9fx-j79w | メモリ不足による破損を介した RCE (CVSS 4.0: 9.2) |
| CVE-2026-109619 | GHSA-6wmf-4rv5-p3rp | 古いグローバル状態を介した RCE (CVSS 4.0: 9.2) |
アップストリームでは PHP 8.2.35、8.3.36、8.4.27、8.5.12 が修正され、7.4、8.0、8.1 向けにはソースのみの最小限の緩和策が公開されました。以下のプラットフォーム向けの修正は誰も公開していないため、このリポジトリはそれら向けのパッチと再現可能なビルドスクリプトを提供します。
PHP Group、Remi Collet、Amazon とは無関係です。 いかなる保証もありません。デプロイ前に 制限事項をお読みください。
php7.3 7.3.33-35 には、同じアップストリームコミットを 7.3 に移植した別個のポートが含まれています。ここにある EL7 向けパッチは同じ 17 ファイルを変更しており、コアの変更は行単位で同一です (詳細は docs/TESTING.md)。tests/verify.sh はそれぞれについて PATCHED を報告しました。| お使いのシステム | PHP パッケージの入手元 | 使用するもの |
|---|---|---|
| CentOS 7 / RHEL 7 | Remi php73 (例: php-7.3.33-14.el7.remi) | patches/php-7.3.33-remi22-el7-… + build/el7-php73/build.sh |
| Amazon Linux 2 | Amazon php-5.4.16-46.amzn2.* | patches/php-5.4.16-amzn2-… + build/amazon-linux/build.sh amzn2 |
| Amazon Linux 1 (AMI 2017.03 / 2018.03) | Amazon php-5.3.29-1.8.amzn1 | patches/php-5.3.29-amzn1-… + build/amazon-linux/build.sh amzn1 |
| Sury PPA を使う Ubuntu / Debian、PHP 7.3 / 7.4 / 8.0 / 8.1 | deb.sury.org | ここからは何も使いません。 Sury の 7.3.33-35、7.4.33-31、8.0.30-25、8.1.34-9 (以降) にアップグレードしてください。チェンジログに CVE の記載はありませんが、これらにはすでに修正 (debian/patches/*-Avoid-state-corruption-via-bailout.patch) が含まれています。 |
Ubuntu 24.04 ディストリビューションの php8.3 | Ubuntu アーカイブ | 8.3.6-0ubuntu0.24.04.13 以降にアップグレードしてください。 |
| 任意の入手元の PHP 8.2 以降 | — | 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 以降にアップグレードしてください。 |
ビルドマシンに Docker が必要です (OS は問いません)。ビルドは対象ディストリビューションのコンテナ内で完全に実行されるため、生成された RPM は通常の yum localinstall でインストールできます。
git clone https://github.com/leonlai-tw/php-eol-cve-2026-109618-109619.git
cd php-eol-cve-2026-109618-109619
# CentOS 7 / RHEL 7 + Remi PHP 7.3 -> ./work-el7/out/
build/el7-php73/build.sh
# Amazon Linux 2 + PHP 5.4 -> ./work-amzn2/out/
build/amazon-linux/build.sh amzn2
# Amazon Linux 1 + PHP 5.3 -> ./work-amzn1/out/
build/amazon-linux/build.sh amzn1
生成されたパッケージは <vendor version>.cvefix1 という形式でバージョン付けされます(例:
php-7.3.33-22.cvefix1.el7、php-5.4.16-46.amzn2.0.7.cvefix1)。そのため、置き換えるベンダーパッケージよりも常に新しいものとしてソートされます。
すでにインストール済みのパッケージのみをインストールし、その後 PHP を再起動します:
# on the target host, inside the directory holding the built RPMs
yum localinstall $(for p in $(rpm -qa 'php*' --qf '%{NAME}\n'); do ls ${p}-[0-9]*.cvefix1*.rpm 2>/dev/null; done)
systemctl restart php-fpm # or: apachectl graceful (mod_php)
長時間実行される PHP プロセス(Swoole/Octane、キューワーカー、cron デーモン)も再起動する必要があります。 そうしないと、古いバイナリが実行され続けます。
rpm -q php-cli # must end in .cvefix1
tests/verify.sh # prints PATCHED / NOT PATCHED
tests/verify.sh は 16 MB のメモリ制限で 1 つの CLI プロセスを実行し、最小限の緩和策の観測可能な動作を検証します。メモリ不足時にプロセスはシャットダウン関数を実行せずに終了コード 1 で終了します(未パッチの PHP は 255 で終了し、シャットダウン関数を実行します)。
実行中の PHP-FPM が新しいバイナリを使用していることを確認するには:
p=$(pgrep -o -f 'php-fpm: master'); sha256sum /proc/$p/exe /usr/sbin/php-fpm # hashes must match
上流コミット 712e60f9ed(「bailout による状態破壊を回避」、ブランチ PHP-7.4-CVE-2026-109618-109619)と同じ設計です。
_exit(1) でプロセスを終了します。PHP-FPM / Apache は
新しいワーカーを起動します。「Possible integer overflow in memory
allocation」エラーにも同じことが当てはまります。Content-Disposition と Content-Type のパートヘッダのみを保持し、
重複を無視するため、小さなリクエストで PHP に大量のメモリを割り当てさせることはできなくなりました。session.upload_progress は無効化されています(CVE-2026-109619 の確認済みの発生源)。modules_activated、エグゼキュータの例外/エラーハンドリング状態、連結リストの先頭)。これにより、
後続のリクエストが解放済みの状態を参照することはできません。ファイルごとの詳細と各ポートの作成方法: docs/PROVENANCE.md。 テスト結果: docs/TESTING.md。
memory_limit を使い果たしたリクエストはワーカープロセスを終了させます。mod_php では
クライアントは HTTP 500 ページではなく接続切断を受け取ります。register_shutdown_function() のコールバックはメモリ不足エラー後に実行されません。session.upload_progress は進捗を報告しなくなります。7.3.33-22 ソースに基づいています。現在 Remi の最後の EL7
バイナリ(7.3.33-14)を実行している場合、-15 から -22 までの Remi のセキュリティバックポートも
受け取ります(CVE-2024-4577、CVE-2024-8925/8926/8927、CVE-2024-8929、CVE-2024-11233/11234/11236、
CVE-2025-14178、CVE-2026-6735、CVE-2026-14355、CVE-2026-7260、CVE-2026-17543 など)。amazonlinux:2018.03 イメージで作成され、
openssl ≥ 1.0.2k(libcrypto.so.10(OPENSSL_1.0.2))を必要とします。openssl 1.0.1k のままの
ホストは、まず amzn-updates から openssl をアップグレードする必要があります。作者により 2026-10-22 に本番環境でビルドおよびデプロイ済みです(CentOS 7 / PHP-FPM Web サーバ、 Amazon Linux 2 および 1 / mod_php)。Issue とプルリクエストは歓迎しますが、サポートの 約束はありません。
パッチは PHP のソースコードを変更するものであり、 PHP License v3.01 の下で配布されます。ビルドスクリプトとドキュメントは MIT ライセンスです。LICENSE を参照してください。「PHP」は The PHP Group の商標であり、本プロジェクトは その承認を受けていません。
本ソフトウェアは「現状のまま」提供され、いかなる種類の保証も伴いません。非本番
環境でテストし、ロールバック手段(yum downgrade またはディスクスナップショット)を確保してください。