Drupal исправляет уязвимости в модулях, включая удалённое выполнение кода в Single Content Sync 1.4.19

Drupal

Drupal Security Team опубликовал уведомления об уязвимостях в дополнительных модулях Drupal - их ставят поверх ядра для расширения функций сайта. Исправленные версии есть для модулей синхронизации контента, аутентификации через OAuth2 и OpenID Connect, ограничения прав на поля и нескольких файловых модулей. Самая серьёзная проблема - удалённое выполнение кода в Single Content Sync. Сведений об эксплуатации этих уязвимостей в реальных атаках в уведомлениях нет.

Типы уязвимостей и исправленные версии модулей Drupal

Проблемы различаются по механике, и условия атаки вендор описал для каждой. Часть уязвимостей требует прав в административной панели, часть доступна анонимному посетителю. Самую высокую оценку риска - 17 из 25 по шкале Drupal Security Team - вендор дал удалённому выполнению кода в Single Content Sync.

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

Single Content Sync переносит контент, связанные сущности и файлы между сайтами Drupal. Специально собранный файл импорта заставляет сайт десериализовать недоверенные данные, то есть восстановить объекты из внешнего потока байтов. В результате на сервере может выполниться код. Атака требует учётной записи с правом "import single content", поэтому без аутентификации она не срабатывает. Ошибка описана как CVE-2026-118562, исправление - версия 1.4.19.

Обход аутентификации через OAuth2 и OpenID Connect

OAuth2 Token Manager хранит системные токены доступа для интеграций с Box, Quip и Slack. Модуль не ограничивает доступ к своим маршрутам OAuth2, и анонимный посетитель может привязать интеграцию сайта к своему аккаунту. Для этого нужен параметр state от предыдущей инициализации токена, например из журналов доступа сервера. Исправление - 8.x-1.2; после установки нужно выполнить обновления базы данных и переинициализировать системный токен через Drush, консольную утилиту Drupal.

OAuth Login - OAuth OIDC SSO пускает на сайт через любого совместимого провайдера идентичности. Модуль не проверяет доступ к маршруту настройки и не убеждается, что провайдер подтвердил адрес электронной почты. Вместе это позволяет войти под любым существующим пользователем, чей адрес известен атакующему. Нужен аккаунт у провайдера, настроенного на сайте, и возможность задать хотя бы один возвращаемый атрибут. Исправление - 3.1.1.

OpenID Connect Client при первом входе связывал нового пользователя с существующим аккаунтом по адресу почты. Это открывало захват любого аккаунта Drupal, ещё не связанного с OpenID Connect, кроме пользователя 1. Условие - провайдер, который не проверяет адрес почты. В версии 2.3.1 связывание отключено по умолчанию; включать его нужно осознанно, а для нестандартного провайдера стоит настроить проверку подтверждения адреса.

Доступ к полям и массовое изменение ролей

Field Permissions задаёт права на отдельные поля, включая настройку "Private". Одна проблема: на типах сущностей без автора приватное поле можно просмотреть. Если такую сущность разрешено редактировать, её изменит любой, кто её видит, включая анонимных посетителей. Другая проблема: роль с машинным именем administrator обходит ограничения полей, если она не отмечена как административная роль сайта. Обе ветки закрывает версия 8.x-1.6.

Bulk Update User Roles даёт форму массового назначения и снятия ролей. Форма не проверяет, есть ли у пользователя право назначать роли. Атака требует роли с правом "administer users", хотя права на назначение ролей у неё может не быть. Исправление - 1.0.5.

Скриптовые атаки в модулях подписей и файлов

Stage File Proxy подгружает файлы с продакшн-сервера на сервер разработки. Модуль не проверяет адрес файла на вредоносное содержимое при резервной загрузке, что открывает межсайтовый скриптинг (XSS, внедрение исполняемого скрипта в страницу). Условия: модуль включён на целевом сайте, атакующий может загрузить файл на исходный сервер, участие пользователя не требуется. Версии 4.0.1 и 3.1.7 закрывают проблему; на рабочем сайте модуль использовать не предполагается.

Signature pad widget сохраняет подписи пользователей как изображения SVG, векторный формат, который может содержать активное содержимое. Модуль недостаточно очищал пользовательские данные перед записью в публичную файловую систему. Подготовленный файл приводит к межсайтовому скриптингу. Требований к аутентификации вендор не назвал. Исправление - 8.x-1.15.

Файловые системы, кеш и раскрытие информации

S3 File System хранит файлы сайта в Amazon S3. Модуль не разделяет контекст загрузки между файловыми операциями в одном запросе. Из-за этого объекты получают неверные списки контроля доступа (ACL) или повреждаются. Нужно уметь запускать несколько файловых операций подряд. Версия 8.x-3.12 закрывает проблему; после обновления вендор советует проверить ACL приватных объектов и работу перехватчиков.

Media Alias Display отдаёт файлы по прямому адресу. В части случаев файл уходит с заголовком кеширования, разрешающим публичное кеширование, хотя кешировать его нельзя. Тогда пользователь может получить из кеша файл, к которому доступа не имеет. Нужна настройка непубличной файловой схемы и знание файла, который ранее запросил привилегированный пользователь. Версии 3.0.3 и 2.1.3 исправляют ошибку, оставшуюся после SA-CONTRIB-2026-245.

Content Sync делится контентом между сайтами. Пароль системного пользователя для синхронизации хранился недостаточно зашифрованным, поэтому непривилегированный пользователь может его увидеть. Для этого нужен доступ к дампу базы данных или право чтения таблицы пользовательских данных, без такого доступа уязвимость не срабатывает. Исправление - 3.2.2.

Подмена запросов и повтор CAPTCHA

Fasttoggle меняет статус публикации, продвижение и закрепление материалов, а также публикацию комментариев по ссылкам на странице. Одна проблема - отсутствие защиты от подмены запросов (CSRF, когда браузер жертвы выполняет действие без её ведома). Для неё нужно, чтобы пользователь с правом "Use Fasttoggle" открыл страницу атакующего, авторизация при этом уже есть. Другая - модуль не проверяет права на изменяемую сущность, и такой пользователь публикует черновик, который ему видеть не разрешено. Проблемы закрывает версия 4.1.1.

CAPTCHA ставит задачу на формы, чтобы блокировать автоматические отправки. Модуль запоминает, что задача решена, и не аннулирует эту отметку полностью. В итоге один раз отправленная форма принимается повторно без нового решения CAPTCHA. Это ослабляет защиту от спама и перебора паролей; участие пользователя не требуется, атака идёт по сети. Вендор отмечает, что эксплойт существует. Исправления - 2.0.11 и 8.x-1.18; проблема дополняет более раннее исправление CVE-2026-3214.

Модули, снятые с поддержки

Несколько проектов Drupal Security Team отметил как неподдерживаемые: GroupEx PRO (Daxko) integration, PayUmoney for Drupal Commerce и CacheFlush. В каждом есть известная проблема безопасности, которую сопровождающий не исправил. Версии для них не выпущены. Вендор советует удалить такие модули с сайта.

Исправления доступны для всех поддерживаемых модулей из списка, поэтому основной риск связан с отложенными установками. Сначала имеет смысл закрыть Single Content Sync, OAuth2 Token Manager и OAuth Login, где ошибка ведёт к выполнению кода или к доступу под чужой учётной записью. Модули без поддержки безопаснее убрать, чем оставлять без исправлений.

Ссылки

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