PHP2Shell(CVE-2026-109618およびCVE-2026-109619)対策を強化、GitlabがVCSS 10.0と評価したOniguruma(Onigumo)の脆弱性(CVE-2026-97229 および CVE-2026-110264)したPHPセキュリティ延長保守サービス版のPHPをリリース
ESIのPHPセキュリティ延長保守サービス(PHP 5.3〜8.1対応)では既知のセキュリティ問題を修正した古いバージョンのPHPをご利用頂けます。PHPプロジェクトによるPHP 8.1のメンテナンス期間は2025年12月のリリースで終了しました。今後、PHP 8.1以下の利用を継続されるには既知のセキュリティ問題を修正したPHPを利用する必要があります。
※ PHP 5.3のサポートを再開しました。
このリリースアナウンスは要約版です。PHPセキュリティ延長保守サービスの利用者はドキュメントリポジトリのリリースノートを参照してください。
PHP セキュリティ延長保守サービス リリースまとめ(2026年10〜11月)
1. PHP 本体: esi-8.2.35.1(全リポジトリ、PHP 5.3〜8.1)
最重要
- Oniguruma の CVE-2026-97229 およびCVE-2026-110264(GitLab で RCE・CVSS 10.0 と報告されたものと同じ不具合)
- 利用者が指定したパターンを
mb_ereg*()に渡すと、ヒープの外に書き込みます。- RCE対策として入力データバリデーションをPHP側・Oniguruma側で強化しました。
- 影響: PHP4以降のmbregexを持つ全てのPHP(PHP 5.3以降ではコードで確認)
- PHPプロジェクトにPR予定。PHPプロジェクトはOniguruma(Onigumo)の脆弱性として対応しない可能性あり。既に公開済みの情報であり、注意喚起の為に詳細を公開しました。
- PHP本体の基本機能の修正(esi-8.2.35 の修正の追加対策)
- PHPプロジェクトにPR予定
- アップロード進捗(PHP2Shell対策)
- 組み込み以外(PECL)のシリアライザーを使う構成の脆弱性を塞ぎました。
- 影響:リリースされている全てのC拡張のセッションシリアライザーモジュール
- メンテナンスが終了しているため注意喚起の為に詳細を公開しました。php.ini設定のアップロード進捗の無効化によりPHP2Shell攻撃は防止可能です。
互換性に注意
mb_ereg系は、正しくないエンコーディングの入力に対して警告なしに false / NULL を返します。(Oniguruma RCE/ReDoS対策)- PHP 5.3〜5.5 では、既定の文字エンコーディングが UTF-8 になります。(Oniguruma RCE/ReDoS対策)
session.use_strict_modeが既定で有効になります。(RCE緩和・セッションハイジャック緩和)- SplHeap、FTP、XML、wddx の動作が変わります。(メモリ破壊修正)
- amzn2023 / el9 系の OpenSSL 対応を PHP 7.4 / 8.1 相当に揃えました。
- 新しい設定
mbstring.regex_compiled_size_limit(既定 64M)を加えました。(Oniguruma RCE/ReDoS対策)未修正
- CVE-2026-115560(上流が未修正)
- 原因はphp.iniで設定されたセッションシリアライザーがPHPスクリプトで変更され、デコード時に文字列の中に含まれるオブジェクトが通常のunserializeで復元されることにある。
- 修正可能だがPHPプロジェクトの修正と合わせる為に修正を保留した。
session.upload_progress.enabled = 0で攻撃は防止・対策できる。2. PECL: 20261101
- radius・stats を保守対象に追加(35拡張)
- radius(15件)
- 偽装した UDP パケットで異常終了する不具合などを修正しました。
- BlastRADIUS への対策として Message-Authenticator を付けます。
- 乱数を CSPRNG に変更しました。
- salt 暗号化を RFC 2868 準拠にしました(暗号化した値のバイト列が変わります)。
- stats(1件): 範囲外の読み出しを修正しました。
- igbinary: unserialize が失敗した時のメモリの不具合を修正しました。
__destruct()が呼ばれるタイミングが変わります。3. PECL: 20261029
- igbinary / msgpack / wddx: アップロード進捗の処理の間は、セッションの読み込みで利用者のコードを動かしません(PHP2Shell の対策を拡張にも適用)。
- msgpack・mongo(32件)・gnupg・mailparse・jsonc: メモリの不具合を多数修正しました。
- amqp: php-5 から PHP 5.3 を対象外にしました。
共通の緩和策・推奨設定
session.upload_progress.enabled = 0(php.ini か FPM のphp_admin_flagで設定し、全ワーカーを再起動)session.use_strict_mode = 1- 文字エンコーディングを明示する。
- 利用者が指定したパターンを
mb_ereg*()に渡さない。- igbinary や msgpack に信頼できないデータを渡さない。
- 未修正の oauth(PHP 8)の問題には、ハンドラーとして
array($this, 'h')の形か closure を渡す。