Torna agli aggiornamenti
UpdatedSep 2, 2026

CVE-2026-0603 — Updated!

Hibernate ORM SQL Injection di Secondo Ordine

Condividi

CVE-2026-0603 Hibernate ORM Injection / SQL Injection di Secondo Ordine

★ CVE-2026-0603 Hibernate SQL Injection PoC ★

https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f


Panoramica

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.


Versioni Affette

CategoriaVersione
VulnerabileHibernate ORM 5.2.8 ≤ versione ≤ 5.6.15
CorrettaNessuna patch ufficiale (5.6.x EOL)

Impatto

  • Cancellazione massiva di record su più tabelle
  • Modifica massiva di record su più tabelle
  • Potenziale esfiltrazione di dati sensibili dal database

Ambiente

docker build -t cve-2026-0603-hibernate-vuln .
docker run --rm -it -p 8080:8080 --name hibernate-vuln cve-2026-0603-hibernate-vuln

PoC

Dopo aver avviato l'ambiente vulnerabile, seguire i passaggi riportati di seguito per riprodurre l'attacco.

Passaggio 1. Registrarsi con un username malevolo

username: ' or '1' = '1

Passaggio 2. Attivare update o delete

Cliccare il pulsante update o delete sull'account registrato.

Passaggio 3. Confermare che tutti i dati utente sono interessati

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.


Mitigazione

  • Rimuovere l'impostazione InlineIdsOrClauseBulkIdStrategy da application.yml
  • Se InlineIdsOrClauseBulkIdStrategy 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

Analisi

Categorie