
Hibernate ORM: SQL-инъекция второго порядка
★ CVE-2026-0603 PoC SQL-инъекции в Hibernate ★
https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f
CVE-2026-0603 — это уязвимость SQL-инъекции второго порядка в Hibernate ORM, широко используемом Java ORM-фреймворке.
Когда строковый первичный ключ, предоставленный пользователем и содержащий вредоносную SQL-нагрузку, используется в массовой операции DELETE или UPDATE, Hibernate вставляет значение напрямую в предложение WHERE без санитизации, что приводит к непреднамеренному массовому удалению или изменению записей базы данных.
| Категория | Версия |
|---|
| Уязвимые | Hibernate ORM 5.2.8 ≤ версия ≤ 5.6.15 |
| Исправленные | Официального патча нет (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
После запуска уязвимого окружения выполните шаги ниже, чтобы воспроизвести атаку.
username: ' or '1' = '1
Нажмите кнопку обновления или удаления на зарегистрированной учётной записи.
Убедитесь, что запрос DELETE или UPDATE был применён ко всем строкам, а не только к зарегистрированной учётной записи. При DELETE удаляются все записи из обеих таблиц. При UPDATE все записи изменяются на значения, предоставленные атакующим.
InlineIdsOrClauseBulkIdStrategy из application.ymlInlineIdsOrClauseBulkIdStrategy необходимо использовать, применяйте строгую валидацию входных данных на основе белого списка ко всем предоставленным пользователем значениям первичного ключа, чтобы отклонять управляющие символы SQL