
CVE-2026-0603 — Updated!
Hibernate ORM: SQL-инъекция второго порядка
CVE-2026-0603 Инъекция в 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
PoC
После запуска уязвимого окружения выполните шаги ниже, чтобы воспроизвести атаку.
Шаг 1. Регистрация с вредоносным именем пользователя
username: ' or '1' = '1
Шаг 2. Запуск обновления или удаления
Нажмите кнопку обновления или удаления на зарегистрированной учётной записи.
Шаг 3. Подтверждение воздействия на все данные пользователей
Убедитесь, что запрос DELETE или UPDATE был применён ко всем строкам, а не только к зарегистрированной учётной записи. При DELETE удаляются все записи из обеих таблиц. При UPDATE все записи изменяются на значения, предоставленные атакующим.
Меры защиты
- Удалите настройку
InlineIdsOrClauseBulkIdStrategyизapplication.yml - Если
InlineIdsOrClauseBulkIdStrategyнеобходимо использовать, применяйте строгую валидацию входных данных на основе белого списка ко всем предоставленным пользователем значениям первичного ключа, чтобы отклонять управляющие символы SQL