PHP の認証不要 RCE、8.2〜8.5 は修正版へ、8.1 以下は修正予定なし
CVE-2026-109618/109619 は認証なしで PHP ワーカー上のコード実行につながる。8.2〜8.5 の影響範囲と最初の修正版、修正の出ない 5.4〜8.1 の扱い、AWS 各サービスの状況と WAF での暫定策を整理する。
CVE-2026-109618/109619 は認証なしで PHP ワーカー上のコード実行につながる。8.2〜8.5 の影響範囲と最初の修正版、修正の出ない 5.4〜8.1 の扱い、AWS 各サービスの状況と WAF での暫定策を整理する。
PHP の Web ランタイムで、認証なしにコードを実行されうる脆弱性が2件(CVE-2026-109618、CVE-2026-109619)見つかった。AWS が米国太平洋時間2026年10月21日14時30分(日本時間22日6時30分)に出したセキュリティ速報 2026-143-AWS によると、影響を受けるのは PHP 8.2〜8.5 の各系列の修正前バージョンだ。上げ先は 8.5.12、8.4.27、8.3.36、8.2.35 のいずれかで、速報はこの更新を唯一の完全な修正としている。
PHP 5.4〜8.1 で動かしている場合は事情が違う。速報によれば、これらは EOL で上流の修正版は出ておらず、出す予定もない。サポート中の系列への移行が必要とされている。
| 系列 | 影響を受けるバージョン | 最初の修正版 |
|---|---|---|
| PHP 8.5 | 8.5.0〜8.5.11 | 8.5.12 |
| PHP 8.4 | 8.4.0〜8.4.26 | 8.4.27 |
| PHP 8.3 | 8.3.0〜8.3.35 | 8.3.36 |
| PHP 8.2 | 8.2.0〜8.2.34 | 8.2.35 |
| PHP 5.4〜8.1 | EOL | 上流の修正なし・予定なし |
出典:AWS セキュリティ速報 2026-143-AWS(2026年10月21日公開)
速報の説明では、細工した Web リクエストを影響のある PHP ワーカーに送ることで、任意コードの実行、プロセスから読めるデータの読み出し、サービス停止が起こりうる。認証は要らず、インターネットから顧客アプリケーションへの境界を越えて届く。被害は攻撃されたワーカーとそのアプリケーション権限の範囲にとどまり、顧客をまたいだ波及は現時点で確認されていないという。
AWS のサービス自体は影響を受けないと速報は述べている。対象になるのは、AWS 上で顧客が該当バージョンの PHP を動かしているケースだ。
EOL 系列(5.4〜8.1)に対して速報が示す対応は 3 つある。CVE-2026-109619 には効く範囲で暫定の設定対策を入れること、PHP ワーカーを再起動すること、修正済みのサポート系列への移行をすぐ始めることだ。CVE-2026-109618 については、EOL 系列向けの修正はないと明記されている。暫定の設定対策が具体的に何かは、速報本文には書かれていない。
ここでいう「修正なし」は、上流の PHP として修正版が出ないという意味だ。OS ディストリビューションなど別の経路で修正が提供されるかどうかは、この速報からは判断できない。
AWS セキュリティ速報が10月21日時点で示した各サービスの状況は次のとおり。日付の多くは当時の「予定」であり、実際の更新状況は各サービスの情報で確かめる必要がある。Amazon Linux のセキュリティ情報には10月22日付で修正済み PHP パッケージが掲載されている。
Elastic Beanstalk の v4.13.12 は「両 CVE に対処」とされる一方、上流の修正を含むのは後続リリースだとも書かれている。v4.13.12 の時点で PHP 本体が修正版になっているかは、速報の文面からは読み取れない。
まず PHP 本体を修正版へ更新することが優先だ。更新まで AWS WAF を使う場合は、PHP 向けマネージドルールグループの設定と更新状況を確認する。速報の公開時点では、このルールグループの更新が予告されていた。既定バージョンを使う設定か、バージョンを固定しているかを Web ACL で確認し、固定している場合はAWS WAF のルール更新履歴で最新のルールを確認する。Count に変更したルールは、検知してもブロックしない点にも注意したい。
以下の 2 つは10月21日の速報公開当初に案内された暫定・補完策であり、最新の PHP マネージドルールグループの確認より優先する手順ではない。速報は、これらの設定だけでは完全に緩和できないと説明している。
CVE-2026-109618 には、Core rule set(CRS)マネージドルールグループの SizeRestrictions_BODY ルールを使う。8KB(8,192 bytes)を超えるリクエストボディをブロックするルールなので、それより大きいボディを正当に受けるエンドポイントがあれば、そのリクエストも止まる。適用前に該当する画面や API を洗い出しておきたい。
CVE-2026-109619 には、速報の公開当初に WebACL に追加するカスタムルール(名前は PHP2Shell)が JSON で案内されていた。条件は、メソッドが POST で、ボディに PHP_SESSION_UPLOAD_PROGRESS を含み、かつ Cookie のキーが PHPSESSID かボディに PHPSESSID を含むこと。一致したらブロックし、CloudWatch メトリクスとリクエストのサンプリングを有効にする設定だ。現在のマネージドルールの更新状況はAWS WAF のルール更新履歴でも確認できる。これら公開初期のルールは追加の補完策として検討できるが、誤検知や正当なリクエストの遮断に注意が必要だ。WAF は PHP 本体の更新に代わる完全な修正ではない。
Elastic Beanstalk、Amazon Linux、Lightsail を使っているなら、手順 2 の「上げる」はそれぞれのプラットフォーム更新、パッケージ更新、インスタンスの作り直しに置き換わる。