Уязвимость удалённого выполнения кода в Drupal core и обход доступа в двух десятках сторонних модулей

Drupal

Сайты на Drupal с модулем Field UI можно захватить удалённо, не имея учётной записи. Уязвимость удалённого выполнения кода в ядре Drupal команда безопасности оценила в 19 баллов из 25 по своей внутренней шкале. На голом ядре она не срабатывает. Нужен сторонний модуль или собственный код, который открывает доступ к уязвимой функции. Известных путей атаки несколько, и как минимум один обходится без аутентификации. В тот же день, 14 октября, вышли исправления ещё для двух десятков сторонних модулей и одной административной темы. Часть из них закрывает обход доступа, раскрытие данных и межсайтовый скриптинг.

Уязвимости Drupal core и сторонних модулей октября 2026

Удалённое выполнение кода в ядре

Проблема получила идентификатор CVE-2026-108097. Ошибка сидит в модуле Field UI, который входит в поставку ядра и отвечает за настройку полей контента. Подобрав подходящий внешний модуль, злоумышленник выполняет свой код на сервере. Дальше открывается путь к полному контролю над сайтом, краже базы пользователей и содержимого. Платная служба защиты Drupal Steward закрывает часть известных векторов, но не все. Значит, обновляться нужно в ближайшие дни, а не недели. За два дня до выпуска команда безопасности отдельно предупредила: рабочие эксплойты могут появиться в течение часов. Пока обновление не установлено, администраторы могут удалить модуль field_ui. Это временная мера, она отключает часть административных возможностей, зато снимает риск. Исправленные сборки - 11.4.10, 11.3.19, 10.6.19 и 12.0.0-beta2. Ветки 10.5 и ниже, 11.2 и ниже, а также Drupal 8 и Drupal 9 исправлений больше не получают.

Сторонние модули с выполнением кода

Похожая история у модуля Entity List, который создаёт списки сущностей без использования Views. Здесь та же уязвимость удалённого выполнения кода с той же оценкой - CVE-2026-108099. Прямой атаки на одном модуле не хватит, но комбинации с другими расширениями дают рабочие сценарии, и один из них не требует входа в систему. Обновиться нужно до версии 3.0.10. Отдельно стоит модуль Block AJAX, который подгружает блоки асинхронно. Он не проверяет данные, приходящие от пользователя, и в худшем случае это приводит к внедрению PHP-объектов и выполнению кода. Оценка - 20 баллов из 25, самая высокая в этом выпуске. Риск касается только сайтов с включённым Layout Builder. Исправление - версия 3.0.2.

Межсайтовый скриптинг в ядре и теме Gin

Две ошибки нашлись в самом ядре. Модуль Navigation недостаточно очищает некоторые атрибуты, модуль Link - разметку ссылок. В обоих случаях посторонний скрипт попадает на страницу и исполняется в браузере жертвы. Для Navigation и темы Gin Admin Theme атакующему нужны права на вставку HTML-тегов с определёнными атрибутами или право управлять меню. Это сужает круг потенциальных злоумышленников до редакторов и администраторов. Тем не менее подготовленный пользователь может подставить скрипт, который сработает у более привилегированной жертвы. Ядро закрывает обе проблемы в тех же сборках, что и удалённое выполнение кода. Для темы Gin исправления - 4.1.4 и 5.0.16.

Обходы доступа в сторонних модулях

Три модуля получили критическую оценку из-за обхода доступа. Restrict route by IP, созданный для ограничения доступа по IP-адресу, не защищает часть динамических маршрутов, поэтому закрытые страницы могут открыться постороннему. Оценка - 17 баллов из 25. Модуль Entity Reference Manager разрешает пользователю с правом просмотра контента удалять произвольные материалы, термины и медиа. Модуль Actstream не проверяет, что настройки потока активности правит владелец записи. Ещё пять расширений - Gutenberg, Inline Entity Form Dialog, Xray Audit, DKAN и Views Share - пропускают чужие данные при более скромных оценках, от 10 до 14 баллов. В Xray Audit, например, через маршрут предпросмотра открывается неопубликованное содержимое, хотя поля с ограниченным доступом остаются закрытыми.

Раскрытие данных и шаблонные инъекции

Модули Linked Field и Inline Formatter Field не отделяют содержимое полей от шаблонного кода. Через подстановку шаблонов можно вытащить значения конфигурации, включая ключи API и учётные данные. Обе проблемы требуют прав на создание или редактирование контента. Утечки поменьше нашли в SmartLinker AI, Permissions by Term, Freelinking, Easy Breadcrumb и модуле двухфакторной аутентификации miniorange. В последнем случае точка входа для входа без браузера выдаёт ключ API неаутентифицированному пользователю. Подмодуль резервного копирования Advanced Filesystem не проверяет запросы, из-за чего пользователя можно обманом заставить выполнить лишнее действие. XSS достался модулям Country, Menu Link Attributes и Leaflet. А учебный подмодуль email_example из набора Examples for Developers вообще умеет рассылать письма на любые адреса, поэтому его удалили из проекта.

Неподдерживаемые проекты

Два расширения - Orphans Media и ECA Helper - команда безопасности пометила как неподдерживаемые. Исправлений для них не будет: в них остаётся известная проблема, которую автор не устранил.

Что делать администраторам сайтов

Обновить ядро до 11.4.10, 11.3.19, 10.6.19 или 12.0.0-beta2. Если обновление откладывается, удалить модуль field_ui и включить защиту Drupal Steward, если она доступна. Проверить наличие уязвимых расширений и обновить их до версий, указанных в бюллетенях; для Entity List это 3.0.10, для Entity Reference Manager - 1.0.3, для Actstream - 2.1.1 или 2.0.1, для Restrict route by IP - 1.3.1 или 2.0.1, для Block AJAX - 3.0.2. Удалить подмодуль email_example, а сам набор Examples for Developers обновить до 4.0.7. Снять с эксплуатации Orphans Media и ECA Helper либо найти им замену. После обновления Menu Link Attributes запустить обновление базы данных, иначе в кэше останутся небезопасные атрибуты меню.

Основная нагрузка в этом выпуске легла на сторонние модули: из почти тридцати бюллетеней ядру посвящены четыре. Обходы доступа и раскрытие данных встречаются чаще межсайтового скриптинга, а самые опасные сценарии почти всегда требуют стечения настроек - включённого расширения, определённой роли или конкретной конфигурации. Именно поэтому часть администраторов решит, что их сайт не затронут. Ошибка в Field UI показывает обратную сторону такой логики: уязвимость в ядре не работает сама по себе, но ждёт подходящего соседа в виде стороннего модуля.

Ссылки

Комментарии: 0