
Hibernate ORM Injeção SQL de Segunda Ordem
★ PoC de Injeção SQL em Hibernate CVE-2026-0603 ★
https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f
CVE-2026-0603 é uma vulnerabilidade de Injeção SQL de Segunda Ordem no Hibernate ORM, um framework ORM Java amplamente utilizado.
Quando uma chave primária do tipo string fornecida pelo usuário contendo um payload SQL malicioso é usada em uma operação em massa de DELETE ou UPDATE, o Hibernate insere o valor diretamente na cláusula WHERE sem sanitização, causando exclusão ou modificação massiva não intencional de registros do banco de dados.
| Categoria | Versão |
|---|
| Vulnerável | Hibernate ORM 5.2.8 ≤ versão ≤ 5.6.15 |
| Corrigida | Sem patch oficial (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
Após iniciar o ambiente vulnerável, siga os passos abaixo para reproduzir o ataque.
username: ' or '1' = '1
Clique no botão de update ou delete na conta registrada.
Verifique que a query DELETE ou UPDATE foi aplicada a todas as linhas, não apenas à conta registrada. Para DELETE, todos os registros de ambas as tabelas são removidos. Para UPDATE, todos os registros são modificados com os valores fornecidos pelo atacante.
InlineIdsOrClauseBulkIdStrategy do application.ymlInlineIdsOrClauseBulkIdStrategy precisar ser usada, aplique validação de entrada estrita baseada em whitelist em quaisquer valores de chave primária fornecidos pelo usuário para rejeitar caracteres de controle SQL