
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의 2차 SQL 인젝션 취약점입니다.
악성 SQL 페이로드가 포함된 사용자 제공 문자열 기본 키가 대량 DELETE 또는 UPDATE 작업에 사용될 때, Hibernate는 해당 값을 정제 없이 WHERE 절에 직접 삽입하여 의도하지 않은 데이터베이스 레코드의 대량 삭제 또는 수정을 초래합니다.
| Category | Version |
|---|
| 취약 | 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
등록된 계정에서 update 또는 delete 버튼을 클릭합니다.
DELETE 또는 UPDATE 쿼리가 등록된 계정뿐만 아니라 모든 행에 적용되었는지 확인합니다. DELETE의 경우, 두 테이블의 모든 레코드가 제거됩니다. UPDATE의 경우, 모든 레코드가 공격자가 제공한 값으로 수정됩니다.
application.yml에서 InlineIdsOrClauseBulkIdStrategy 설정을 제거하십시오InlineIdsOrClauseBulkIdStrategy를 반드시 사용해야 하는 경우, 사용자 제공 기본 키 값에 대해 엄격한 화이트리스트 기반 입력 검증을 적용하여 SQL 제어 문자를 거부하십시오