Volver a actualizaciones
ActualizadaSep 2, 2026

CVE-2026-0603 — Actualizado!

Hibernate ORM Inyección SQL de Segundo Orden

Compartir

CVE-2026-0603 Inyección en Hibernate ORM / Inyección SQL de Segundo Orden

★ CVE-2026-0603 PoC de Inyección SQL en Hibernate ★

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


Descripción general

CVE-2026-0603 es una vulnerabilidad de Inyección SQL de Segundo Orden en Hibernate ORM, un framework ORM de Java ampliamente utilizado.
Cuando una clave primaria de tipo string proporcionada por el usuario que contiene una carga útil SQL maliciosa se utiliza en una operación masiva de DELETE o UPDATE, Hibernate inserta el valor directamente en la cláusula WHERE sin sanitización, provocando la eliminación o modificación masiva no intencionada de registros de la base de datos.


Versiones afectadas

CategoríaVersión
VulnerableHibernate ORM 5.2.8 ≤ versión ≤ 5.6.15
ParcheadaSin parche oficial (5.6.x EOL)

Impacto

  • Eliminación masiva de registros en múltiples tablas
  • Modificación masiva de registros en múltiples tablas
  • Potencial exfiltración de datos sensibles de la base de datos

Entorno

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

PoC

Después de iniciar el entorno vulnerable, siga los pasos a continuación para reproducir el ataque.

Paso 1. Registrarse con un nombre de usuario malicioso

username: ' or '1' = '1

Paso 2. Activar la actualización o eliminación

Haga clic en el botón de actualizar o eliminar en la cuenta registrada.

Paso 3. Confirmar que todos los datos de usuario están afectados

Verifique que la consulta DELETE o UPDATE se aplicó a todas las filas, no solo a la cuenta registrada. Para DELETE, todos los registros de ambas tablas son eliminados. Para UPDATE, todos los registros son modificados con los valores proporcionados por el atacante.


Mitigación

  • Eliminar la configuración InlineIdsOrClauseBulkIdStrategy de application.yml
  • Si se debe utilizar InlineIdsOrClauseBulkIdStrategy, aplicar una validación de entrada estricta basada en listas blancas sobre cualquier valor de clave primaria proporcionado por el usuario para rechazar caracteres de control SQL

Análisis

Categorías