
Hibernate ORM SQL-Injection zweiter Ordnung
★ CVE-2026-0603 Hibernate SQL Injection PoC ★
https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f
CVE-2026-0603 ist eine Second-Order SQL Injection-Schwachstelle in Hibernate ORM, einem weit verbreiteten Java-ORM-Framework.
Wenn ein benutzerseitig bereitgestellter String-Primärschlüssel, der eine bösartige SQL-Nutzlast enthält, in einer Bulk-DELETE- oder UPDATE-Operation verwendet wird, fügt Hibernate den Wert direkt in die WHERE-Klausel ein, ohne ihn zu bereinigen, was zu unbeabsichtigter massenhafter Löschung oder Änderung von Datenbankeinträgen führt.
| Kategorie | Version |
|---|
| Anfällig | Hibernate ORM 5.2.8 ≤ Version ≤ 5.6.15 |
| Gepatcht | Kein offizieller Patch (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
Nach dem Start der anfälligen Umgebung folgen Sie den untenstehenden Schritten, um den Angriff zu reproduzieren.
username: ' or '1' = '1
Klicken Sie auf die Schaltfläche „Update" oder „Delete" beim registrierten Konto.
Verifizieren Sie, dass die DELETE- oder UPDATE-Abfrage auf alle Zeilen angewendet wurde, nicht nur auf das registrierte Konto. Bei DELETE werden alle Datensätze in beiden Tabellen entfernt. Bei UPDATE werden alle Datensätze mit den vom Angreifer bereitgestellten Werten geändert.
InlineIdsOrClauseBulkIdStrategy aus application.ymlInlineIdsOrClauseBulkIdStrategy verwendet werden muss, wenden Sie eine strikte Whitelist-basierte Eingabevalidierung auf alle benutzerseitig bereitgestellten Primärschlüsselwerte an, um SQL-Steuerzeichen abzulehnen