概要
Hibernate ORM は Java / Jakarta EE エコシステム に おいて 最も 広く 使われて いる ORM(Object-Relational Mapping)フレームワーク です。Spring Boot、JBoss EAP、WildFly 等 の 主要 な Java アプリケーション フレームワーク / サーバー で デフォルト の ORM プロバイダ として 採用 されて います。
この 脆弱性 は InlineIdsOrClauseBuilder に おける 二次 SQL インジェクション で、ORM を 使用 して いて も SQL インジェクション が 発生 しうる 事例 として 注目 です。Red Hat JBoss EAP 等、Hibernate を 内部 で 使用 する アプリケーション サーバー が 影響 を 受け ます。Red Hat が Errata で 修正 パッチ を 提供 して います。
技術的 背景
二次 SQL インジェクション(Second-Order SQL Injection)は、入力時 で は なく、データベース に 一度 格納 された データ が 後続 の クエリ で 使用 される 際 に 発生 する タイプ の SQL インジェクション です。
通常 ORM フレームワーク は パラメータ バインディング に より SQL インジェクション を 防止 します が、ORM 内部 の クエリ ビルダー 自体 に 脆弱性 が ある 場合、アプリケーション 側 で 適切 に パラメータ化 された クエリ を 使用 して いて も 攻撃 が 成立 する 可能性 が あります。
InlineIdsOrClauseBuilder は Hibernate 内部 で バルク 操作 時 に ID リスト を OR 句 で 結合 する ため の ビルダー クラス です。この コンポーネント の 処理 に 不備 が あり、特定 の 条件 下 で SQL インジェクション が 可能 に なります。
「ORM を 使って いれば SQLi は 防げる」という 認識 は 必ずしも 正しく ない こと を 示す 重要 な 事例 です。ORM 自体 の バージョン 管理 と アップデート も セキュリティ 上 重要 です。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSSスコア | 8.3 |
| 深刻度 | High |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 高 |
| CWE | CWE-89 (SQLインジェクション) |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| Hibernate ORM | Red Hat | 修正前バージョン |
| JBoss EAP | Red Hat | Hibernate依存バージョン |
| WildFly | Red Hat | Hibernate依存バージョン |
| Spring Boot | VMware | Hibernate依存バージョン |
修正バージョンと回避策
- 修正バージョン: Red Hat Errata RHSA-2026:4915、RHSA-2026:4916 を 適用
- 回避策: 入力値 の サニタイズ を アプリケーション レイヤー で も 実施 する こと。バルク 操作 の 入力 データ に 対して は 特に 注意 を 払って ください
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
