PHP の深刻な脆弱性 CVE-2026-12184 が FIX:TLS の欠陥と PHP-FPM クラッシュの恐れ

PHP TLS Flaw Lets Remote Server Trigger DoS and Crash Entire FPM Process

2026/07/06 gbhackers — 新たに公表された PHP の深刻な脆弱性 CVE-2026-12184 は、リモートからのサービス拒否 (DoS) を引き起こし、Web アプリケーションに深刻なリスクをもたらす可能性がある。この脆弱性を悪用する攻撃者により、PHP-FPM (FastCGI Process Manager) のプロセス・プール全体でのクラッシュに至る恐れがある。この脆弱性が影響を及ぼす範囲は、PHP のバージョン 8.3.32 未満/8.4.21 未満/8.5.6 未満と、複数のサポート対象 PHP ブランチである。問題の詳細は GitHub アドバイザリ GHSA-mhmq-mmqj-2v39 に記載されている。

PHP の TLS 欠陥

この脆弱性は、HTTP ストリーム処理ロジックにおける、php_stream_url_wrap_http_ex 関数に存在する。アドバイザリによると、この脆弱性は、アウトバウンド接続時に Transport Layer Security (TLS) 初期化が失敗した場合に発生する。この失敗は、証明書の有効期限切れや peer name の検証エラーなどにより引き起こされる可能性がある。

php_stream_xport_crypto_setup または php_stream_xport_crypto_enable を介した TLS のセットアップが失敗した場合に、ストリーム・リソースは適切に閉じられ、NULL にリセットされる。しかし、その後のクリーンアップ・ルーチンは、ストリームが依然として有効であると誤認し、条件なしで peer name を再設定しようとする。

このロジック上の欠陥により、解放後メモリ使用 (use-after-free) の状態が発生し、最終的にプロセスの不安定化やクラッシュにつながる。重要なのは、この脆弱性の悪用において、特別に細工されたペイロードや複雑な攻撃チェーンは必要なく、悪意のリモート・サーバおよびミスコンフィグされたリモート・サーバが、無効な TLS 設定を提示するだけで、この失敗条件を引き起こせる点である。

公開 issue で議論されているように、PHP アプリケーションが頻繁にアウトバウンド HTTPS リクエストを送信する実環境において、この脆弱性は特に危険である。また、PHP-FPM の展開環境では影響が大きく、単一のクラッシュでワーカー・プール全体が停止し、サービスの完全な停止に至る可能性がある。

高トラフィックの Web アプリケーションにおいて、PHP-FPM が広く使用されているため、リモートの攻撃者がサービスをクラッシュさせ、持続的な停止を引き起こす現実的な攻撃ベクターとなり得る。

この脆弱性は、セキュリティ研究者 ndossche が、ハイブリッドな静的/動的解析ツールを用いて特定したものである。それが示すのは、成熟したコードベースに潜む微妙なメモリやロジックの問題を明らかにする上で、自動化された脆弱性発見技術の有効性が高まっている状況である。

すでに PHP のメンテナは、pull request #21031 で公開したパッチにより、この問題に対処している。ユーザーに対して強く推奨されるのは、修正版である PHP 8.3.32/8.4.21/8.5.6 への速やかなアップグレードである。公式に文書化された回避策は存在しないため、パッチの適用が主要な緩和策となる。


これと並行して、PHP の OpenSSL エクステンションにおける別の深刻度 Medium の脆弱性 CVE-2026-14355 も修正された。この問題は、AES-WRAP-PAD アルゴリズムを使用する openssl_encrypt 関数でメモリ破壊を引き起こすものである。その原因は、RFC 5649 のパディング要件を考慮しない不適切なバッファ・サイズ設定にある。悪用は比較的複雑と考えられているが、アプリケーションのクラッシュや限定的な DoS シナリオにつながる可能性がある。


セキュリティ・チームにとって必要なことは、インターネットに公開された PHP 環境へのパッチ適用を優先し、アウトバウンドの TLS 接続を伴うアプリケーションの動作を見直すことだ。異常な FPM のクラッシュや、繰り返される worker の再起動を監視することで、潜在的な悪用の試みの検知が促進される。

今回の公表が浮き彫りにするのは、PHP のような広く展開されている server-side runtime において、暗号処理における堅牢なエラー処理が極めて重要であることだ。