
Hibernate ORM SQL Injection di Secondo Ordine
★ CVE-2026-0603 Hibernate SQL Injection PoC ★
https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f
CVE-2026-0603 è una vulnerabilità di SQL Injection di Secondo Ordine in Hibernate ORM, un framework ORM Java ampiamente utilizzato.
Quando una chiave primaria di tipo stringa fornita dall'utente e contenente un payload SQL malevolo viene utilizzata in un'operazione bulk DELETE o UPDATE, Hibernate inserisce il valore direttamente nella clausola WHERE senza sanitizzazione, causando cancellazione o modifica massiva non intenzionale di record del database.
| Categoria | Versione |
|---|
| Vulnerabile | Hibernate ORM 5.2.8 ≤ versione ≤ 5.6.15 |
| Corretta | Nessuna patch ufficiale (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
Dopo aver avviato l'ambiente vulnerabile, seguire i passaggi riportati di seguito per riprodurre l'attacco.
username: ' or '1' = '1
Cliccare il pulsante update o delete sull'account registrato.
Verificare che la query DELETE o UPDATE sia stata applicata a tutte le righe, non solo all'account registrato. Per DELETE, tutti i record di entrambe le tabelle vengono rimossi. Per UPDATE, tutti i record vengono modificati con i valori forniti dall'attaccante.
InlineIdsOrClauseBulkIdStrategy da application.ymlInlineIdsOrClauseBulkIdStrategy deve essere utilizzata, applicare una rigorosa validazione dell'input basata su whitelist su qualsiasi valore di chiave primaria fornito dall'utente per rifiutare i caratteri di controllo SQL