PHP、重大なRCE脆弱性2件を修正 8.5.12などへの即時更新を呼びかけのアイキャッチ画像

Laravel PHP アップデート情報 セキュリティ 脆弱性

PHP、重大なRCE脆弱性2件を修正 8.5.12などへの即時更新を呼びかけ

※本記事は広告が含まれる場合があります。

出典:X(@laravelnews)

PHPチームは、認証なしでリモートコード実行(RCE)が可能になる重大な脆弱性2件を修正したPHP 8.5.12、8.4.27、8.3.36、8.2.35を公開しました。2026年10月21日付のLaravel Newsによると、Webリクエストを処理するすべてのPHP環境が影響を受けます。完全な対策は更新のみとされており、PHPチームは即時の更新を呼びかけています。

みつた

こんにちは、みつたです!認証なしでリモートコード実行につながるPHPの重大な脆弱性2件が修正されました。暫定設定だけでは完全な対策にならないので、修正版への更新を急ぎたいですね。

対象はWebリクエストを処理するすべてのPHP環境

今回の脆弱性は、PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedを含む、Webリクエストを処理するすべてのPHP環境に影響します。Laravelアプリケーションの一般的な本番実行環境も対象です。

PHPチームが特にリスクを高く評価しているのはmod_phpです。アプリケーションのコードが実行される前に、認証されていないリクエストから動作するエクスプロイトを確認しているとしています。

修正された2件の脆弱性

CVE-2026-109618:メモリ不足時の処理による破損

対応するアドバイザリーIDはGHSA-w8hw-w9fx-j79wです。

メモリ不足(OOM)の処理によって、内部のリクエストデータが一部しか初期化されていない状態でPHPの処理が中断されることがあります。その後のリクエスト終了処理で、不正なデータが有効なデータとして扱われる可能性があります。

CVE-2026-109619:解放後も残るグローバル状態

対応するアドバイザリーIDはGHSA-6wmf-4rv5-p3rpです。

リクエストが所有する内部状態が、メモリの解放後も残ることがあります。同じワーカーで後続のリクエストを処理すると、通常の初期化で状態がリセットされる前に、その古い状態が使われる可能性があります。

更新先とパッケージの確認

修正版は次の4バージョンです。

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

ソースコードとWindows向けビルドは、PHPのダウンロードページで提供されています。LinuxディストリビューションやLTSベンダーには事前にパッチが提供されているため、利用中のベンダーで更新パッケージを確認してください。

PHP 8.1以前は、PHPプロジェクトによる通常の更新提供が終了しています。一部のディストリビューションやLTSベンダーは修正をバックポートしているため、提供状況を確認するか、サポート対象バージョンへの更新が必要です。

また、深刻度を踏まえ、PHPセキュリティチームはPHP 7.4、8.0、8.1向けの最小限のソースバックポートも公開しています。これは、LTSベンダーを利用せず、ソースからビルドする利用者向けのものです。

ボランティアが保守するrpms.remirepo.netについては、参照記事の公開日である2026年10月21日中には更新が提供されないとされています。PHPチームは、ディストリビューションのパッケージへの切り替え、またはソースからのビルドを推奨しています。

Laravel Cloud・Forge・Vaporの対応

Laravelが案内した対応は、サービスによって異なります。

サービス案内されている対応
Laravel Cloudパッチ公開後、アプリケーションへの自動適用を開始。利用者の手動操作は不要
Laravel ForgeサーバーのForgeダッシュボードから、手動でPHPを更新。更新できない場合はサーバーを停止
Laravel Vaporパッチ公開後、PHP 8で動作するアプリケーションの自動再デプロイを開始。PHP 7向けパッチは提供されないため、すべてのアプリケーションを直ちにPHP 8へ更新

すぐに更新できない場合の暫定対策

以下の設定は特定の攻撃経路への露出を減らすものであり、環境を安全にする完全な対策ではありません。完全な修正には更新が必要です。

CVE-2026-109618への暫定対策

  • memorylimit=-1を設定する:FPMプールのphpadmin_valueやApache設定など、アプリケーションが上書きできない場所で設定します。プール、ディレクトリ、アプリケーション側の設定によって、有限の上限が再設定されていないことも確認します。
  • postmaxsizeを引き下げる:アドバイザリーでは、ファイルアップロードのないアプリケーションは8M、必要なアプリケーションは32Mを提示しています。uploadmaxfilesizeはpostmaxsize未満に保ちます。
  • Webサーバーやプロキシでリクエストを制限する:デコード後のリクエストサイズ、入力フィールド数、マルチパートのパート数、ヘッダー数、ネストの深さを制限します。有効なContent-Lengthを持たないリクエストも対象にする必要があります。
  • コンテナまたはcgroupのメモリ上限を使う:可能であれば、影響を受けたワーカーだけを終了させる構成にします。RLIMITASやRLIMITDATAは、脆弱性につながるメモリ割り当て失敗を引き起こす可能性があるため、代わりに使用しないよう案内されています。

CVE-2026-109619への暫定対策

  • session.uploadprogress.enabled=0を設定する:php.ini、FPMプール、またはサーバー設定で指定し、すべてのワーカーを再起動します。iniset()やFPMの.user.iniでは、適用のタイミングが遅すぎるとされています。
  • PHP 8.5ではfatalerrorbacktraces=0を設定する:設定後、すべてのワーカーを再起動します。
  • 初期化前に診断メッセージを出す設定を削除する:リクエスト単位の無効な設定や非推奨の設定が対象です。errorreporting、displayerrors、@でメッセージを隠しても対策にはなりません。
  • 攻撃者が到達できる致命的エラーや実行タイムアウトを修正する:コールバック、アップロード・インポート処理、終了処理での失敗も含まれます。

暫定設定だけで対応を終えない

PHPチームは、完全な緩和策はなく、更新が唯一の完全な修正だとしています。利用中のPHPバージョンとパッケージ提供状況、Laravel関連サービスの対応を確認し、修正版への更新を進めてください。

参照記事は速報として公開されており、新しい情報に応じて更新するとしています。

-Laravel, PHP, アップデート情報, セキュリティ, 脆弱性