
Injection SQL de second ordre dans Hibernate ORM
★ CVE-2026-0603 PoC d'injection SQL Hibernate ★
https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f
CVE-2026-0603 est une vulnérabilité d'injection SQL de second ordre dans Hibernate ORM, un framework ORM Java largement utilisé.
Lorsqu'une clé primaire de type chaîne fournie par l'utilisateur et contenant une charge utile SQL malveillante est utilisée dans une opération DELETE ou UPDATE en masse, Hibernate insère la valeur directement dans la clause WHERE sans assainissement, provoquant une suppression ou modification massive non intentionnelle d'enregistrements de la base de données.
| Catégorie | Version |
|---|
| Vulnérable | Hibernate ORM 5.2.8 ≤ version ≤ 5.6.15 |
| Corrigée | Aucun correctif officiel (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
Après avoir démarré l'environnement vulnérable, suivez les étapes ci-dessous pour reproduire l'attaque.
username: ' or '1' = '1
Cliquez sur le bouton de mise à jour ou de suppression sur le compte enregistré.
Vérifiez que la requête DELETE ou UPDATE a été appliquée à toutes les lignes, et non uniquement au compte enregistré. Pour DELETE, tous les enregistrements des deux tables sont supprimés. Pour UPDATE, tous les enregistrements sont modifiés avec les valeurs fournies par l'attaquant.
InlineIdsOrClauseBulkIdStrategy de application.ymlInlineIdsOrClauseBulkIdStrategy doit être utilisé, appliquez une validation stricte des entrées basée sur une liste blanche sur toutes les valeurs de clé primaire fournies par l'utilisateur afin de rejeter les caractères de contrôle SQL