
UpdatedSep 2, 2026
CVE-2026-0603 — Updated!
Hibernate ORM 二次SQLインジェクション
CVE-2026-0603 Hibernate ORM インジェクション / 二次 SQL インジェクション
★ CVE-2026-0603 Hibernate SQL インジェクション PoC ★
https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f
概要
CVE-2026-0603 は、広く使用されている Java ORM フレームワークである Hibernate ORM における 二次 SQL インジェクション の脆弱性です。
悪意のある SQL ペイロードを含むユーザー提供の文字列主キーが一括 DELETE または UPDATE 操作で使用されると、Hibernate はその値をサニタイズせずに WHERE 句に直接挿入し、データベースレコードの意図しない大量削除や改ざんを引き起こします。
影響を受けるバージョン
| カテゴリ | バージョン |
|---|---|
| 脆弱 | Hibernate ORM 5.2.8 ≤ version ≤ 5.6.15 |
| 修正済み | 公式パッチなし (5.6.x EOL) |
影響
- 複数のテーブルにわたるレコードの大量削除
- 複数のテーブルにわたるレコードの大量改ざん
- データベースからの機密データの潜在的な漏洩
環境
docker build -t cve-2026-0603-hibernate-vuln .
docker run --rm -it -p 8080:8080 --name hibernate-vuln cve-2026-0603-hibernate-vuln
PoC
脆弱な環境を起動した後、以下の手順に従って攻撃を再現します。
ステップ 1. 悪意のあるユーザー名で登録する
username: ' or '1' = '1
ステップ 2. 更新または削除をトリガーする
登録したアカウントの更新または削除ボタンをクリックします。
ステップ 3. すべてのユーザーデータが影響を受けていることを確認する
DELETE または UPDATE クエリが登録したアカウントだけでなく、すべての行に適用されたことを確認します。 DELETE の場合、両方のテーブルにわたるすべてのレコードが削除されます。 UPDATE の場合、すべてのレコードが攻撃者提供の値で改ざんされます。
緩和策
application.ymlからInlineIdsOrClauseBulkIdStrategy設定を削除するInlineIdsOrClauseBulkIdStrategyを使用する必要がある場合は、ユーザー提供の主キー値に対して厳格な ホワイトリストベースの入力検証 を適用し、SQL 制御文字を拒否する