Уязвимости в Typo3 позволяют обойти контроль доступа и загрузить произвольные файлы

TYPO3

Специалисты выявили две уязвимости в системе управления контентом Typo3. Одна из них относится к панели администратора и инструменту установки, вторая - к конструктору форм. Первая даёт возможность обойти контроль доступа, вторая - загружать файлы с типами, которые администратор попытался ограничить. Проблемы затрагивают версии 13.x и 14.x, и для них уже выпущены обновлённые сборки.

Детали уязвимостей

Уязвимость обхода контроля доступа получила идентификатор CVE-2026-19418 и связана с проверкой источника запроса. Разработчики применяют заголовок Referrer (адрес страницы, с которой пришёл запрос), чтобы отличать обращения к панели управления от остальных запросов. Начиная с версии 13.0 панель и Install Tool (инструмент настройки и установки системы) обслуживаются из главного скрипта сайта, а не из отдельного каталога typo3/. Проверка сравнивает источник запроса с корнем сайта, а не с конкретной папкой, поэтому запросы, отправленные с любой страницы того же домена, считаются допустимыми. Если злоумышленник сможет выполнить JavaScript на таком домене, например, через межсайтовый скриптинг, он получит возможность обращаться к функциям панели от имени аутентифицированного пользователя. Атакующий сможет менять настройки, просматривать чувствительные данные и выполнять другие действия с правами жертвы. Для этого необходимо, чтобы пользователь с правами администратора был активен в панели в момент атаки. По шкале CVSS 4.0 эта уязвимость получила 7.3 балла, что соответствует высокому уровню опасности.

Вторая уязвимость, которой присвоен идентификатор CVE-2026-15305, находится в компоненте Form Framework, предназначенном для создания веб-форм. В элементах загрузки файлов существует настройка allowedMimeTypes - список типов, которые разрешено принимать. Специалисты обнаружили, что ограничение не применяется на сервере. Причиной стало то, что валидатор MimeTypeValidator, проверяющий тип загружаемого файла, добавлялся в процесс построения формы до того, как применялись свойства конкретной формы. В результате валидатор не включался в цепочку обработки, и пользователи могли отправлять файлы с любым типом MIME. Загрузка исполняемых PHP-скриптов при этом блокируется отдельным механизмом, поэтому риск выполнения вредоносного кода на сервере снижается. Тем не менее обход административного ограничения сам по себе опасен, особенно когда форма предназначена для приёма изображений или документов, а через неё могут проходить произвольные файлы. Оценка этой уязвимости по CVSS 4.0 - 6.3 балла, средний уровень.

Обе проблемы требуют определённых условий для эксплуатации. Первая предполагает, что злоумышленник сможет выполнить JavaScript на одном из доменов, принадлежащих Typo3-сайту. Чаще всего это происходит через межсайтовый скриптинг на самом сайте или на поддомене. Дополнительно жертва должна быть аутентифицирована в административной панели. Вторая уязвимость не требует аутентификации, но для её использования в форме должна быть настроена загрузка файлов и задан список разрешённых типов. На данный момент нет публичных данных о том, что какие-либо из этих уязвимостей применялись в реальных атаках. Исследователи сообщили о проблемах разработчикам заранее, и те подготовили исправления.

Для устранения обеих уязвимостей выпущены версии 13.4.34 и 14.3.6. В версии 14.3.5 уже исправлена проблема загрузки файлов, но обход контроля доступа в ней ещё присутствует, поэтому требуется переход на 14.3.6. Администраторам Typo3 рекомендуется обновиться как можно скорее. Если сайт размещён у внешнего провайдера, следует убедиться, что он применил новые версии. Перед обновлением полезно пересмотреть настройки форм, особенно тех, которые разрешают пользователям отправлять файлы. Также стоит проверить, что используемые веб-приложения не полагаются на проверку заголовка Referrer для защиты доступа.

Эти находки подтверждают важность регулярного обновления систем. Механизм проверки происхождения запросов не должен строиться только на заголовке Referrer, который легко подделать или вовсе не передать. Валидация пользовательских данных должна выполняться в рамках обработки формы, а не существовать изолированно от неё. Открытый исходный код позволяет быстро находить такие ошибки, но ответственность за своевременную установку исправлений лежит на администраторах. Игнорирование публикаций о безопасности ставит под угрозу и данные, и доступность сайта.

Ссылки

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