Retour aux mises à jour
UpdatedSep 2, 2026

CVE-2026-0603 — Mis à jour !

Injection SQL de second ordre dans Hibernate ORM

Partager

CVE-2026-0603 Injection Hibernate ORM / Injection SQL de second ordre

★ CVE-2026-0603 PoC d'injection SQL Hibernate ★

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


Aperçu

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.


Versions affectées

CatégorieVersion
VulnérableHibernate ORM 5.2.8 ≤ version ≤ 5.6.15
CorrigéeAucun correctif officiel (5.6.x EOL)

Impact

  • Suppression massive d'enregistrements dans plusieurs tables
  • Modification massive d'enregistrements dans plusieurs tables
  • Exfiltration potentielle de données sensibles depuis la base de données

Environnement

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

PoC

Après avoir démarré l'environnement vulnérable, suivez les étapes ci-dessous pour reproduire l'attaque.

Étape 1. S'inscrire avec un nom d'utilisateur malveillant

username: ' or '1' = '1

Étape 2. Déclencher la mise à jour ou la suppression

Cliquez sur le bouton de mise à jour ou de suppression sur le compte enregistré.

Étape 3. Confirmer que toutes les données utilisateur sont affectées

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.


Atténuation

  • Supprimez le paramètre InlineIdsOrClauseBulkIdStrategy de application.yml
  • Si InlineIdsOrClauseBulkIdStrategy 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

Analyse

Catégories