
PoC для CVE-2026-9082 (Drupal SA-CORE-2026-004): SQL-инъекция ядра Drupal
Предупреждение: Этот Proof-of-Concept предназначен только для образовательных и исследовательских целей. Не используйте это программное обеспечение против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Автор не несёт ответственности за неправомерное использование или ущерб, причинённый данным проектом.
Proof-of-Concept (poc.py) для CVE-2026-9082 (Drupal SA-CORE-2026-004) — критической уязвимости SQL-инъекции в ядре Drupal, которая может позволить атакующему выполнять произвольные SQL-запросы, когда Drupal настроен на использование серверной части PostgreSQL.
Причина кроется в трансляторе условий запросов сущностей PostgreSQL в ядре Drupal, где ключи массива в фильтре IN запроса сущности могут быть изменены атакующим для внедрения произвольных фрагментов SQL.
Этот PoC взаимодействует со слоем JSON:API в Drupal, внедряя некорректное условие SQL, которое приводит к внутренней ошибке сервера HTTP 500 в уязвимых версиях, тогда как исправленные версии корректно очищают ключи запроса и предотвращают исключение.
Затронутые версии (ядро Drupal):
>= 8.9.0, < 10.4.10>= 10.5.0, < 10.5.10>= 10.6.0, < 10.6.9>= 11.0.0, < 11.1.10>= 11.2.0, < 11.2.12>= 11.3.0, < 11.3.10Просто запустите
make
Мы предоставляем лабораторию воспроизведения на базе docker-compose, использующую:
Обе конфигурации включают:
/jsonapi/node/article без аутентификации (обычная конфигурация для многих сайтов на Drupal)article, чтобы фильтрация /jsonapi/node/article реалистично работалаФайлы сайта и содержимое базы данных уже подготовлены в sites.tar.gz и init.sql.gz
На момент написания Drupal 11.2.12 ещё не доступен на Docker Hub, поэтому мы собираем собственный образ с установленным через composer Drupal.