
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
脆弱な環境を起動した後、以下の手順に従って攻撃を再現します。
username: ' or '1' = '1
登録したアカウントの更新または削除ボタンをクリックします。
DELETE または UPDATE クエリが登録したアカウントだけでなく、すべての行に適用されたことを確認します。 DELETE の場合、両方のテーブルにわたるすべてのレコードが削除されます。 UPDATE の場合、すべてのレコードが攻撃者提供の値で改ざんされます。
application.yml から InlineIdsOrClauseBulkIdStrategy 設定を削除するInlineIdsOrClauseBulkIdStrategy を使用する必要がある場合は、ユーザー提供の主キー値に対して厳格な ホワイトリストベースの入力検証 を適用し、SQL 制御文字を拒否する