概要
PHP開発チームは2026年9月22日、次期メジャーバージョンPHP 8.6.0の最初のリリース候補(RC1)と、8.5.11・8.4.26のバグ修正/セキュリティ更新、さらに8.3.35・8.2.34のセキュリティ専用更新を合わせた合計5バージョンを一斉に公開した。複数のサポートラインを並行してメンテナンスするPHPの体制がここでも示された形だ。8.6.0 RC1はリリースマネージャーMatteo Beccati氏がタグ付けしたもので、7月2日のAlpha 1、9月10日のBeta 3を経てフィーチャーフリーズに達した節目にあたる。今回のリリースで特に注意が必要なのはセキュリティ面で、FastCGIのACLバイパスやOpenSSLのホスト名検証不備、クロスオリジンでの認証情報漏えいなど、外部にPHPを公開している環境では優先度の高い脆弱性が複数修正されている。
8.6.0 RC1の新機能と非推奨化
RC1はあくまで機能凍結後の検証段階であり、本番環境での利用は想定されていない。開発チームは自身のアプリケーションをRC1でテストし、不具合をGitHubに報告するよう呼びかけている。重大な問題が見つかればRCが追加される可能性もあり、正式版8.6.0のリリースは2026年11月頃を予定している。Alpha 1からRC1までの変更点としては、関数の引数を部分的に固定して新しいcallableを得る「partial function application」、値を範囲内に収める組み込み関数clamp()、リクエスト内でcallable/クロージャの構築を再利用するファーストクラスcallableキャッシュとステートレスクロージャキャッシュ、デフォルト値を持てるようになったreadonlyプロパティ、Date拡張のTime\Duration、新しいポーリングAPI(Io\Poll)とストリームエラーAPIの拡充、PostgreSQL向けのチャンク単位フェッチ(Pdo\Pgsql::ATTR_CHUNK_SIZE)、X-WingやML-KEM768に対応したlibsodium 1.0.22サポートなどが挙げられる。一方で非推奨化リストも長く、array_walk()などへのオブジェクト渡し、is_double/is_long/doublevalといった旧来の型キャスト関数、metaphone()、クラス定数名としての"namespace"の使用などが対象となった。RC段階でもCore・DOM・Intl・Opcache・PDO・Phar・Sockets・Zlibにまたがるメモリ安全性の修正が取り込まれており、UTF-16/32のエンコーディング検出時に発生するuse-after-freeや範囲外読み取り、OSS-Fuzzが検出したアサーション失敗などが解消されている。
安定版とセキュリティ専用版の修正内容
8.5.11(Volker Dusch氏)と8.4.26(Saki Takamachi氏)は、バグ修正とセキュリティ修正を組み合わせた更新版だ。8.5.11ではFPMにおけるUID/GIDのオーバーフロー、ZTSビルド下でのOpcache protect_memoryの競合状態、キャッシュ不能なメソッドに対するtracing JITのクラッシュが修正された。8.4.26では大きな出力長を指定した際のhash_pbkdf2()のバッファオーバーフロー、imagebmp()の速度低下、SNMPやSOAPでのクラッシュ・セグメンテーションフォルト、ZipArchiveの堅牢性向上が図られている。これに対し8.3.35(Jakub Zelenka氏)と8.2.34(Pierrick Charron氏)は純粋なセキュリティ専用リリースで、両バージョンとも新機能開発が終了し、セキュリティ修正のみが提供されるライフサイクル末期にある。8.2は2022年11月にリリースされており、PHPの一般的なライフサイクルモデル(約2年間のバグ修正サポートの後、約1年間のセキュリティ専用サポートを経て終了)に沿えば、サポート終了が近づいている段階だ。なお、php-src リポジトリのgitタグはいずれも9月22日付で作成されているが、各タグのNEWSファイルのヘッダー日付は告知スケジュールに合わせて9月24日となっており、ビルド自体は同一である点は留意しておきたい。
修正されたCVEと今後の対応
今回のサイクルでは11件のCVEに加え、CVE番号のない2件のアドバイザリが修正された。主なものとして、listen.allowed_clientsの部分一致比較に起因するFastCGIのIPv6 ACLバイパス(CVE-2026-91768)、SANミスマッチ後にCNへフォールバックしてしまうOpenSSLのTLSホスト名検証不備(CVE-2026-91769)、ワイルドカードCNマッチング時のOpenSSLヒープバッファオーバーフロー(CVE-2026-91767)、リダイレクト時にクロスオリジンで認証情報が漏えいするHTTPストリームラッパーの脆弱性(CVE-2026-91766、GHSA-fpwc-w8rq-cr92)、SOAPサーバー側のXMLクリーンアップにおける無制限の再帰(CVE-2026-91765)、PharのTAR解析における整数オーバーフロー(CVE-2026-6103)などが挙げられる。これらの修正は8.3.35・8.2.34に加え、8.4.26・8.5.11にもバックポートされている。FastCGIのACLバイパス、OpenSSLのホスト名検証不備、クロスオリジンの認証情報漏えいの3件は、PHPを外部ネットワークに直接公開している場合に特に注意すべき脆弱性と言える。8.2系・8.3系の利用者はまず8.2.34・8.3.35への更新を優先し、8.4系・8.5系の利用者もセキュリティ修正と付随するバグ修正を得るために8.4.26・8.5.11への更新が推奨される。先行して新機能を試したい開発者は、8.6.0 RC1のソースおよびWindows QAビルドをステージング環境で検証し、問題があればGitHubで報告することが求められている。