Назад к обновлениям
UpdatedSep 2, 2026

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

Анализ

Категории