В Drupal 11.4.12 обновили библиотеки Symfony и masterminds/html5, устранив известные проблемы обработки URL, YAML и HTML. Исправления особенно актуальны для сайтов, работающих с пользовательским содержимым, а также для разработчиков, запускающих команды Drupal напрямую из каталога web/. Релиз опубликован 6 ноября 2026 года по UTC — 7 ноября по московскому времени.

HTML-парсер получил исправления, связанные с XSS и перегрузкой сервера
В Drupal 11.4.12 библиотеку masterminds/html5 обновили до версии 2.12.0. Она отвечает за разбор и формирование HTML. Предыдущие выпуски содержали ошибки, которые при определённых способах обработки пользовательской разметки могли приводить к появлению опасных атрибутов или создавать чрезмерную нагрузку на процессор.
Одна из проблем была связана с управляющим символом form feed внутри HTML-атрибута. Парсер мог разделить исходный безопасный атрибут на несколько частей, в результате чего в обработанном HTML появлялся атрибут, который не предполагалось пропускать. В опубликованном разработчиками библиотеки предупреждении описан сценарий обхода XSS-фильтрации. XSS позволяет внедрять JavaScript в страницу, которую затем открывает другой посетитель.
Другой набор исправлений охватывает сразу несколько случаев: медленную обработку специально сформированного HTML, неправильное экранирование объявлений пространств имён xmlns:*, исключение TypeError при определённой настройке XML и удаление некорректных последовательностей UTF-8. Для одного из сценариев авторы предупреждения измерили около 10,5 секунды процессорного времени при разборе 160 КБ специально подготовленных данных.
Эти проблемы имеют разные условия проявления. Например, риск внедрения разметки через xmlns:* возникает, если приложение разбирает недоверенный HTML, очищает его через DOM и затем повторно преобразует в HTML. Само наличие Drupal на сервере ещё не доказывает, что конкретный сайт использует уязвимый сценарий. Обновление до masterminds/html5 2.12.0 устраняет ошибки на уровне зависимости.
Symfony 7.4.23 исправляет обработку адресов и сложных YAML-документов
В состав релиза вошли обновления нескольких пакетов Symfony до версии 7.4.23. Это компоненты PHP-фреймворка, на которых в том числе построены внутренние механизмы Drupal. Официальные примечания связывают обновление с ноябрьскими предупреждениями безопасности Symfony.
Одна из исправленных проблем находится в компоненте HTTP Foundation. При определённой конфигурации сервера специально составленный адрес мог заставить приложение генерировать ссылки на домен, выбранный отправителем запроса. В описании Symfony приведены возможные последствия: переходы по неверным ссылкам, перенаправления и адреса отправки форм на посторонний сайт. Уязвимость зависит от расположения входного PHP-скрипта и правил веб-сервера, поэтому её нельзя автоматически приписывать каждому установленному Drupal.
В компоненте YAML обнаружили другую группу ошибок. Документы со специально подобранной структурой заставляли парсер многократно обрабатывать одни и те же части входных данных. Согласно техническому описанию Symfony, один из файлов размером всего 93 байта мог занимать PHP-процесс примерно на 15 секунд. Такой механизм способен создавать отказ в обслуживании в приложениях, принимающих недоверенный YAML.
Symfony 7.4.23 содержит исправления этих проблем. Для администратора Drupal практический смысл обновления зависимостей состоит в сокращении числа известных уязвимых участков библиотечного кода. Реальная возможность атаки по каждому предупреждению зависит от конфигурации сайта и того, какие компоненты и пути обработки данных в нём используются.
Команды Drupal снова запускаются напрямую из каталога web/
Отдельная ошибка затрагивала проекты со стандартной для drupal/recommended-project структурой каталогов: публичные файлы находятся в web/, а зависимости Composer — в соседнем каталоге vendor/.
Начиная с Drupal 11.4, прямой запуск php core/scripts/dr или устаревающего php core/scripts/drupal из папки web/ мог завершаться фатальной ошибкой: скрипт искал vendor/autoload.php внутри публичного корня, где этого файла нет. При запуске через vendor/bin/dr проблема обычно не возникала, поскольку путь к автозагрузчику передавал Composer. Разработчики Drupal CMS подтвердили сбой на версии 11.4.11.
В Drupal 11.4.12 резервный путь исправили: при прямом вызове скрипт обращается к autoload.php в корне Drupal, который уже определяет правильное расположение зависимостей. Разница заметна в командных сценариях установки рецептов, генерации тем и автоматизации, где использовался непосредственный вызов скриптов ядра. Команда core/scripts/drupal остаётся устаревающей, хотя пока поддерживается.
У распаковки параметров URL появился предел в 10 000 символов
Функция UrlHelper::uncompressQueryParameter() умеет восстанавливать сжатые значения из параметров адресной строки. Раньше вызов PHP-функции gzuncompress() выполнялся без явного ограничения размера распакованных данных. В версии 11.4.12 разработчики установили предел в 10 000 символов при распаковке.
Причина изменения связана с тем, что сжатая строка поступает из HTTP-запроса. Небольшой по размеру входной параметр может содержать большой объём данных после распаковки. Ограничение уменьшает риск выделения чрезмерного объёма памяти на этом этапе. В коде сохранили предусмотренную ранее обработку ситуации, когда распаковать значение не удаётся; речь идёт о точечном изменении внутренней функции, а не о введении общего ограничения длины URL на сайте.
В административной теме исправили контрастность текста ошибок форм в тёмном режиме, оформление активного рабочего пространства и выравнивание логотипа с навигационными значками свёрнутой боковой панели. Эти изменения касаются читаемости и расположения элементов интерфейса, не меняя содержимое материалов сайта.
Обновление Drupal через Composer и новый срок поддержки ветки 11.4
На официальной странице Drupal для обновления ядра вместе с зависимостями приведена команда:
composer update "drupal/core-*" --with-all-dependenciesИтоговые версии пакетов зависят от ограничений в composer.json и файла блокировки зависимостей. Разработчики также публикуют отдельную команду для фиксации конкретной версии 11.4.12, но предупреждают, что жёсткая привязка может усложнить последующие обновления.
Ещё одно изменение касается срока поддержки. В опубликованном 2 ноября уведомлении команда Drupal сократила период обновлений безопасности для минорных веток с 12 до 8 месяцев начиная с переходного графика 2027 года. Для Drupal 11.4.x поддержка безопасности теперь заявлена до 21 апреля 2027 года, хотя ранее планировалась до июня. Поддержка основной ветки Drupal 11 при этом продолжается.
Таким образом, версия 11.4.12 закрывает отдельные ошибки обработки HTML и зависимостей Symfony, возвращает работоспособность прямых вызовов CLI-скриптов в распространённой структуре проекта и уточняет защиту распаковки URL-параметров. В сравнении с Drupal 11.4.11, где исправлялись пакетные операции и настройки PHP, это другой набор проблем с самостоятельными техническими последствиями.
Источники
- Drupal 11.4.12 — официальное описание релиза
- Masterminds/html5 — предупреждение об обработке HTML-атрибутов
- Masterminds/html5 — проблемы производительности и сериализации HTML
- Symfony — проблема генерации ссылок в HTTP Foundation
- Symfony — избыточное время разбора YAML
- Drupal — отчёт об ошибке прямого запуска CLI-скриптов
- Drupal — изменение ограничения в UrlHelper
- Drupal — изменение сроков поддержки минорных версий