Skip to main content

PHPが重大な未認証RCEの脆弱性2件を修正(CVE-2026-109618、CVE-2026-109619):今すぐアップデート

illustration hero ai

2026年10月22日

0 分で読めます

2026年10月21日(水)14:00 UTC、PHPプロジェクトは、未認証のリモートコード実行を許す可能性のある重大な脆弱性2件(いずれもCVSS v4.0で9.2)を修正するため、PHP 8.5.12、8.4.27、8.3.36、8.2.35をリリースしました。PHPセキュリティチームは、「完全な緩和策はありません。安全を確保する唯一の方法はアップデートです」と注意を促しています。

これらはComposerパッケージではなく、PHPランタイムのバグです。そのため、検出と修正の方法が異なります。以下で詳しく説明します。

要約 Webリクエストを処理するPHP(PHP-FPM、mod_phpを使用するApache、php-cgi、FrankenPHP、LiteSpeed)を実行している場合は、今すぐ8.5.12、8.4.27、8.3.36、または8.2.35に更新してください。8.1以前をお使いの場合は、ディストリビューションまたはLTSベンダーが提供するバックポート済みパッケージを入手するか、アップグレードしてください。

何が起きたのか

時刻はすべてUTCです。

  • 10月20日: PHPセキュリティチームは、10月21日14:00 UTCに重大なセキュリティリリースを予定していると事前に告知しました。CVSS v4.0で9.2と評価された脆弱性2件を修正するもので、詳細が漏えいした場合や実際の攻撃が確認された場合は、予定より早くリリースする可能性も示されました。

  • 10月21日、14:00 UTC以前: Snykは両方のCVEについて、SNYK-UNMANAGED-PHP-21347795(CVE-2026-109618)とSNYK-UNMANAGED-PHP-21347796(CVE-2026-109619)のアドバイザリを公開しました。お客様が必要な対応を把握できるようにするとともに、修正版が判明した時点で監視対象プロジェクトに検出結果が反映されるようにするためです。

  • 10月21日、14:00 UTC:PHPセキュリティアドバイザリと4つの修正版が公開されました。その約30分以内に、影響範囲や修正版など、関連するすべての詳細を反映してSnykのアドバイザリも更新されました。

  • 10月21日以降:事前にパッチを受け取っていたLinuxディストリビューションが、独自のアドバイザリを公開し始めました。Snykは、SNYK-UBUNTU2604-PHP85-21373920など、公開されたアドバイザリを順次掲載しています。最新の一覧はCVE-2026-109618とCVE-2026-109619で確認できます。

2つの脆弱性について

どちらもPHPエンジンのリクエスト処理に存在するため、アプリケーションコードが実行される前に攻撃可能です。この点が、これらの脆弱性が広範囲に影響し、危険である理由の一つです。

技術的な詳細

CVE-2026-109618、メモリ不足時の破損を利用したRCE:メモリ不足の処理により、内部のリクエストデータが一部しか初期化されていない状態でPHPが中断されることがあります。その後のリクエストのクリーンアップ処理では、この不正なデータが有効なものとして扱われます。悪意あるリクエストを使ってワーカーのメモリ上限に到達させられる攻撃者は、この中断を引き起こせます。

CVE-2026-109619、古いグローバル状態を利用したRCE:リクエストに紐づく内部状態が、参照先のメモリ解放後も残存することがあります。同じワーカーが処理する後続のリクエストが、通常の初期化でリセットされる前にこの古い状態を使用する可能性があります。長時間稼働するワーカーモデルでは、これはリクエストをまたいだuse-after-freeに相当します。

これらのバグは、30年間本番環境で使われてきたランタイムで、AIの支援によって発見されました。LLMやエージェントが普及した今も、サーバーは広く稼働し続けています。そして、これらの脆弱性を発見したのと同種のモデルを、攻撃者も利用できるようになっています。これが、エージェント自体だけでなく、エージェントが動かすアプリケーションにもAI主導のセキュリティを提供するEvo by Snykの考え方の背景です。

影響を受ける対象

Webリクエストを処理するPHP環境はすべてリスクにさらされています。PHP-FPM、mod_phpを使用するApache、php-cgi、FrankenPHP、LiteSpeedなどが該当します。特にmod_phpを使用するApacheは最も脆弱で、未認証のリクエスト1件だけでアプリケーションコードの実行前に攻撃を引き起こす実証済みのエクスプロイトがあります。

PHP 8.1以前はPHPプロジェクトからのアップデート提供が終了しているため、パッチ未適用の8.1、8.0、7.4をインストールしている場合、上流からの修正はありません。深刻度を踏まえ、PHPセキュリティチームは、ソースからビルドする場合やLTSベンダーを利用していない場合に向けて、7.4、8.0、8.1用の最小限のソースバックポートを公開しました。

今すぐ行うべきこと

  1. アップデートする。修正版はPHP 8.5.12、8.4.27、8.3.36、8.2.35です。8.2は2026年12月31日にサポート終了を迎えるため、8.2をお使いの場合は、次のバージョンへのアップグレード計画を立てるタイミングでもあります。

  2. ベンダーの情報を確認する。LinuxディストリビューションとLTSベンダーには、リリース前にパッチが提供されています。ソースからのビルドを待たず、更新済みのパッケージを入手してください。パッチ適用済みのディストリビューションビルドでは、古いバージョン番号が維持される場合もあるため、ディストリビューションのアドバイザリやパッチレベルも確認してください。

  3. 実際に稼働しているバージョンを確認する。各ホストとイメージでPHPのバージョンを確認してください(php -vまたはイメージタグ)。スキャン結果だけでは、インストール環境に修正が適用されているか確認できません。

  4. 今日中にアップデートできない場合:PHPは、特定の攻撃経路への露出を軽減するものの、インストール環境を安全にするわけではない緩和策を提示しています。アプリケーションから上書きできないようにmemory_limit=-1を設定する、post_max_sizeを小さくする、session.upload_progress.enabled=0を設定した後にすべてのワーカーを再起動する、そして8.5ではfatal_error_backtraces=0を設定することです。それぞれの注意点は該当するアドバイザリを参照してください。

  5. PHP 8.1以前をお使いの場合:サポート対象バージョンにアップグレードするか、ディストリビューションまたはLTSベンダーからバックポート済みパッケージを入手してください。PHPが提供する7.4、8.0、8.1向けのソースバックポートは、ソースからビルドするチーム向けの最終手段です。

オープンソースの取り組み

PHPセキュリティチームは、リリース日時と深刻度を1日前に告知し、悪用に関する詳細は公開しませんでした。パッケージ版の修正をソースリリースと同時に公開できるよう、Linuxディストリビューションにパッチを事前共有しました。サポート対象外のバージョン(7.4、8.0、8.1)向けのバックポートも公開しました。また、人気のボランティア運営リポジトリ(rpms.remirepo.net)のユーザーに対して、初日には更新されないことと、代わりに取るべき対応を伝えました。さらに、各設定で防げないことも含め、緩和策のガイダンスを非常に透明性の高い形で公開しています。

これが、ボランティア運営のプロジェクトが適切に対応した場合の、協調的な脆弱性開示のあり方です。また、公開スケジュールのおかげで下流の関係者が事前に準備できたため、Snykではリリース前にアドバイザリを公開し、リリース直後に内容を完成させることができました。

Snyk SCAの動作

Snyk Open Sourceは、composer.jsonやcomposer.lockなどのマニフェストファイルやビルドファイルにアプリケーションが宣言している内容を読み取ります。PHPインタープリターは、宣言された依存関係ではありません。Dockerfile、ディストリビューションのパッケージ、プラットフォームイメージ、または手動でインストールされます。composer.jsonにある「php": ">=8.2"」という制約から分かるのは、アプリケーションが受け入れるPHPのバージョンであり、実際にデプロイされているバージョンではありません。

Snyk PlatformでPHPの露出状況を確認する方法

利用する機能

CVE-2026-109618およびCVE-2026-109619で確認できる内容

Snyk Open Source(CLIまたはSCMインテグレーション)

PHPランタイムはマニフェストファイル内の通常の依存関係ではないため、CVE自体は報告されません。PHP/Composerプロジェクトでは、Snykはアプリケーションが宣言している依存関係を表示します。これにより、PHPアプリケーションであるプロジェクトを特定できます。宣言されたPHPバージョンの制約から、デプロイ済みのバージョンは分かりません。

Snyk C/C++ Unmanagedスキャン

プロジェクト内にPHPランタイムが存在する場合、アドバイザリが報告されます。CVE IDで絞り込むこともできます。

Snyk Container

LinuxディストリビューションのパッケージからインストールされたPHPは、ディストリビューションがアドバイザリを公開すると報告されます。一部のサポート対象ディストリビューションではすでにアドバイザリが公開されており、テスト結果で確認できます(例:SNYK-RHEL10-PHP84-21392647、SNYK-UBUNTU2604-PHP85-21373920)。ほかのアドバイザリも、各ディストリビューションの公開に合わせて取り込んでいます。こちらから確認できます:CVE-2026-109618 CVE-2026-109619。公式のphp: Dockerイメージを含め、ソースからコンパイルされたPHPはSnyk Containerでは検出されません。

Snyk API & Web

DASTテストでは、実行中のアプリケーションを外部から調査し、技術スタックを特定します。

Zero Dayレポート

Snyk Zero Dayレポートは、プロジェクトとアドバイザリを照合します。そのため、対象となるのは「Unmanagedスキャン」またはディストリビューションのパッケージを対象としたContainerスキャンを実行したプロジェクトのみです。Open Sourceのみをスキャンしたプロジェクトでは、結果は表示されません。

Snyk API & WebでPHPの攻撃対象領域を把握する

パッチを適用するには、まず対象の一覧が必要です。Snyk API & WebのDiscoveryタブでは、ドメイン上で見つかったアセットを列挙し、その技術スタックを特定できます。Discoveryを開き、TechフィルターをPHPに設定すると、PHPが特定された検出済みのホストとエンドポイントがすべて表示されます。リスク評価、スコア、最終確認日も確認でき、すぐにスキャンしたり、ターゲットとして追加したりできます。

PHPアセットで絞り込んだSnyk API and Web Discoveryのダッシュボード。中・高・重大のリスク評価を受けたターゲットが表示されています。

同じTechフィルターはTargetsリストでも利用でき、追加済みのアプリケーションも同様にPHPで絞り込めます。

PHPテクノロジーで絞り込まれたSnyk Targetsダッシュボード。重大および高リスクのターゲットと、スキャン状況および検出結果を表示。

この機能でPHPのバージョンは分かりませんが、確認すべき場所を特定できます。これは修正に向けた重要なステップです。

Snykの対応

  • 両方のCVEのアドバイザリをPHPの14:00 UTCのリリース前に公開し、リリースから約30分以内に影響を受けるバージョンと修正の詳細を反映して更新しました。

  • 各Linuxディストリビューションの公開に合わせて、ディストリビューションのアドバイザリを取り込んでいます。UbuntuとRed Hatの情報は現在利用できます。

  • 今回の事象に関するZero Dayレポートは、UnmanagedプロジェクトとContainerプロジェクト向けに公開されています。

Snykのセキュリティリサーチチームは、今回の脆弱性開示を引き続き追跡し、新しい情報が入り次第アドバイザリを更新します。ご質問がある場合は、SnykのアカウントチームまたはSupportまでお問い合わせください。

参考情報

レポート

2026年 エージェント型AI導入の現状:第3巻

承認済みモデルの一覧でわかるのは、導入されているモデルであり、それぞれのモデルがアクセスできる範囲ではありません。エージェントの監査をどこから始めればよいか、お悩みですか?

続きを読む

AI Background min crop
Blog

AIが、あなたが受け入れてきたあらゆるリスクを一気に顕在化させる:AI Security Panel: Unfilteredから得た7つの洞察

AIによって攻撃はより安価かつ高速になり、組織がすでに抱えているリスクが露呈しています。4人のセキュリティリーダーが、機械の速度に対応する防御と迅速な修復が今不可欠である理由を語ります。

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSecのご紹介:AI開発のスピードに追随するセキュリティ

AIを活用した開発は、従来のセキュリティワークフローを上回るスピードで進んでいます。SnykのAgentic AppSecは、セキュリティエージェントが脆弱性を継続的に検出、修正、検証し、人が基準を定められるようにします。

Blog

フロンティアモデルは脆弱性を発見した。攻撃者だけがエクスプロイトチェーンを見つけた。

静的解析で欠陥は見つかりましたが、ライブ攻撃テストで侵害につながる連鎖を実証できたのは唯一でした。Evo COS、Claude Security、Claude Code Securityを比較します。