---
title: "CakePHP の StringExpression・IdentifierExpression の照合順序指定に SQL インジェクション（CVE-2026-119419）: 5.4.4 で修正"
url: https://n-t-p.io/worldsecurity/articles/cakephp-stringexpression-identifierexpression-collation-sql-injection-cwe-89-cve-2026-119419-fixed-5-4-4
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月1日
updated: 2026年11月1日
severity: 高
cve: CVE-2026-119419
---

# CakePHP の StringExpression・IdentifierExpression の照合順序指定に SQL インジェクション（CVE-2026-119419）: 5.4.4 で修正

> **TL;DR:** PHP フレームワーク CakePHP の 5.4.3 までで、StringExpression・IdentifierExpression の照合順序の値が検証されずに COLLATE 句へ連結され、SQL インジェクション（CVE-2026-119419、CWE-89）になる。外部入力をこの値に渡すアプリケーションが対象。修正は 5.4.4 に含まれるとみられる（推定）。CVSS v4.0 は 9.2（VulnCheck）、EPSS 0.39%、KEV なし。

**要点**
- CakePHP 5.4.3 までで、StringExpression・IdentifierExpression の照合順序の値が未検証のまま COLLATE 句に入り、SQL インジェクション（CWE-89）になる
- 外部入力を照合順序の名前としてこれらの API に渡すアプリケーションが対象。成立すれば接続のデータベース権限の範囲で影響が及ぶ
- 5.4.4 以降へ更新する（修正コミットを含むことは Git の履歴から確認、公式リリースノートの明記は未確認＝推定）。外部入力を渡している箇所があれば許可リスト化する
- CVSS v4.0 は 9.2、v3.1 は 8.1（いずれも VulnCheck の値）。NVD の状態は Deferred。EPSS 0.39%、KEV なし
- 5.4 系以外の影響、実際の悪用は未確認

NVD は 2026-10-30（12:16 UTC）に、PHP フレームワーク CakePHP の CVE-2026-119419 を登録しました。説明によると、5.4.3 までの `StringExpression` と `IdentifierExpression` は、照合順序（collation）の値を検証せずに SQL の `COLLATE` 句へそのまま連結します。アプリケーションが外部入力をこの値に渡している場合、攻撃者が SQL を追記でき、接続のデータベース権限の範囲で影響が及びます。どのデータベースドライバでも起こり得ます。登録元（CNA）は VulnCheck で、NVD の状態は「Deferred」です。

## 何が起きるか

- 低水準のクエリ式を組み立てる API（`StringExpression` のコンストラクタ、`IdentifierExpression` のコンストラクタ、両者の `setCollation()`）で、照合順序の名前が引用符なしの `COLLATE` 句に入ります。
- 修正前はこの値に制限がなく、区切り文字を含む文字列を渡すと、COLLATE の後ろに別の SQL を付け足せます。
- 影響を受けるのは、利用者の入力（検索条件・並び替えの指定など）を照合順序の名前としてこれらの API に渡しているアプリケーションに限られます。通常のクエリビルダの使い方だけで成立するかは確認していません（未確認）。

## 修正の内容

- 照合順序の値を、英数字・アンダースコア・ドット（前後の二重引用符は可）に限る検証を追加しました。外れる値は `InvalidArgumentException` になります（CakePHP の修正コミット）。
- 修正のコミットは 2026-10-24 に取り込まれ、CakePHP のタグ 5.4.4（2026-11-01 00:47 UTC）の履歴に含まれることを Git の比較で確認しました。5.4.4 に含まれるとみられますが、公式のリリースノートでの明記は確認できていません（推定）。

## 数値と出典（2026-11-01 時点）

| 項目 | 内容 |
|---|---|
| CVE | CVE-2026-119419（CWE-89 SQL インジェクション） |
| 影響版 | CakePHP 5.4.3 まで（NVD の説明） |
| 修正版 | 5.4.4（修正コミットを含む。公式リリースノートでの明記は未確認） |
| CVSS v4.0 | 9.2（Critical、AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H）。VulnCheck（CNA）の値で、NVD 自身の評価はなし。v3.1 は 8.1（High、AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H、同じく VulnCheck の値） |
| 状態 | NVD の状態は「Deferred」 |
| EPSS | 0.39%（パーセンタイル 33.6%、2026-10-31、FIRST） |
| KEV | 掲載なし（CISA の JSON で確認） |

## severity を high とした理由

CNA の評価は 9.2 と高い一方、成立には「外部入力を照合順序の名前としてアプリケーションが渡している」という前提があり、攻撃条件の複雑さは High、攻撃の前提条件（AT:P）も付いています。EPSS は低く、KEV 掲載もありません。ただし成立すればデータベース権限の範囲で読み書きの影響が及び、フレームワークの利用が広いため high としました。

## 対応として考えられること

1. 利用中の CakePHP の版を確認し、5.4.4 以降へ更新します。
2. 更新までの間は、アプリケーションのコードで `StringExpression`・`IdentifierExpression`・`setCollation()` に外部入力を渡している箇所を探し、固定の許可リストにある値だけを使うようにします（本記事の推定。公式な回避策は未確認）。
3. 5.4 系以外（4.x・5.3 系など）を使っている場合は、同じ修正が取り込まれているかを各系統のリリースで確認します。この点は確認できていません。

## 未確認の点

- 実際の悪用は確認していません。攻撃の具体的な手順は本記事には載せません。
- 5.4 系以外の系統（4.x・5.0〜5.3 系）が影響を受けるか、修正が入っているかは確認していません（NVD は「5.4.3 まで」と記載）。
- 修正版が 5.4.4 であることは Git の履歴からの推定で、公式のリリースノートでの明記は確認できていません。
- CVSS は VulnCheck（CNA）の v4.0・v3.1 の値のみで、NVD 自身の評価は確認できていません。
- 日付は NVD の登録（2026-10-30 12:16 UTC）と GitHub の公開情報に基づきます。


## 出典
- [NVD CVE-2026-119419](https://nvd.nist.gov/vuln/detail/CVE-2026-119419) — NIST NVD
- [CakePHP 修正 PR #19726](https://github.com/cakephp/cakephp/pull/19726) — GitHub
- [CakePHP 修正コミット ae8c354](https://github.com/cakephp/cakephp/commit/ae8c354cf825aeb7090ea4b48ce98142446f3ac9) — GitHub
- [CakePHP 5.4.4 タグ](https://github.com/cakephp/cakephp/releases/tag/5.4.4) — GitHub
- [VulnCheck Advisory](https://www.vulncheck.com/advisories/cakephp-through-5.4.3-sql-injection-via-stringexpression-and-identifierexpression-collation) — VulnCheck
- [FIRST EPSS CVE-2026-119419](https://api.first.org/data/v1/epss?cve=CVE-2026-119419) — FIRST
- [CISA KEV カタログ](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) — CISA

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/cakephp-stringexpression-identifierexpression-collation-sql-injection-cwe-89-cve-2026-119419-fixed-5-4-4