返回更新列表
已更新Sep 2, 2026

CVE-2026-0603 — 已更新!

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-0603Hibernate ORM(一款广泛使用的 Java ORM 框架)中的 二次 SQL 注入 漏洞。
当包含恶意 SQL 载荷的用户提供字符串主键被用于批量 DELETE 或 UPDATE 操作时,Hibernate 会将该值直接插入 WHERE 子句而不进行净化处理,导致 数据库记录被意外大规模删除或修改


受影响版本

类别版本
受影响Hibernate ORM 5.2.8 ≤ version ≤ 5.6.15
已修复无官方补丁 (5.6.x 已停止维护)

影响

  • 跨多个表的大规模记录删除
  • 跨多个表的大规模记录修改
  • 数据库中敏感数据的潜在泄露

环境

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 控制字符

分析

分类