В системе управления контентом DNN (DotNetNuke) обнаружена опасная уязвимость типа Stored Cross-Site Scripting (XSS), позволяющая злоумышленникам с низкими привилегиями внедрять и выполнять произвольные сценарии от имени привилегированных пользователей. Уязвимость, зарегистрированная под идентификатором GHSA-2qxc-mf4x-wr29 исследователем Даниэлем Валадасом, затрагивает все версии пакета DotNetNuke.Core до 10.1.0 и имеет критический рейтинг CVSS v3.1 - 9.8 баллов. Организациям, использующим сайты на базе DNN, рекомендуется немедленно установить патч версии 10.1.0 для предотвращения кражи данных, перехвата сессий или полного захвата контроля над административной панелью.
Детали уязвимости
Модуль Prompt в DNN предоставляет интерактивный интерфейс для выполнения команд, способный возвращать сырой HTML-код. Хотя платформа очищает大部分 пользовательских данных перед отображением в формах ввода, команды Prompt обрабатывают свой вывод как HTML, обходя стандартные процедуры санации. Это создаёт брешь в системе безопасности. Злоумышленник, обладающий любой учётной записью с правами аутентификации, может подготовить входные данные, содержащие внедрённые теги <script> или другую вредоносную разметку. Когда этот вредоносный контент впоследствии обрабатывается командой Prompt, результирующий HTML отображается в браузере жертвы, что приводит к выполнению сценариев в контексте безопасности суперпользователя.
Уязвимость, получившая обозначение CVE-2025-59545, коренится в неправильной нейтрализации ввода во время генерации веб-страниц. Неспособность приложения корректно обрабатывать ненадёжные данные в конвейере динамического рендеринга HTML создаёт возможность для персистентных XSS-атак. Вектор атаки является сетевым, требует низкой сложности, минимальных привилегий и взаимодействия с пользователем, но её воздействие охватывает конфиденциальность, целостность и доступность, которые оценены как высокие. После того как злоумышленник отправляет полезную нагрузку, содержащую JavaScript или вредоносный HTML, через форму или конечную точку API, которая сохраняет вводы Prompt, данные остаются в базе данных системы. Позже, когда привилегированный пользователь вызывает команду Prompt, которая считывает этот сохранённый ввод и возвращает его необработанным как HTML, браузер интерпретирует и выполняет внедрённые сценарии. Этот сценарий может привести к краже токенов аутентификации, несанкционированным действиям с повышенными привилегиями или перенаправлению на контролируемые злоумышленником домены.
Поскольку модуль Prompt обычно используется администраторами сайтов для устранения неполадок или задач конфигурации, наличие XSS в этом компоненте особенно опасно. Злоумышленники могут выдавать себя за администраторов, изменять содержимое сайта или внедрять вредоносный код, например, для шифрования страниц по принципу программ-вымогателей. Более того, объединяя эту XSS-уязвимость с другими уязвимостями, такими как подделка межсайтовых запросов, противники могут полностью скомпрометировать экземпляр DNN. Учитывая широкое развёртывание DNN в корпоративных интрасетях и публичных веб-сайтах, непропатченные экземпляры представляют собой значительную поверхность для атаки автоматизированного сканирования и целевых атак.
Версия DotNetNuke.Core 10.1.0 исправляет модуль Prompt, обеспечивая надлежащее экранирование или санацию выходных данных команд перед их отображением. Администраторам следует немедленно обновить систему для снижения рисков. За исправление отвечает разработчик bdukes, который обнаружил и исправил проблемные участки кода, при участии ревьюеров valadas и mitchelsellers. Для применения исправления необходимо в конфигурации NuGet проекта обновить пакет DotNetNuke.Core до версии 10.1.0 или более поздней, повторно развернуть обновлённые бинарные файлы и очистить любую серверную кеш-память. Также следует убедиться, что команды Prompt больше не возвращают сырой HTML, протестировав их с безвредными тестовыми сценариями, и проверить журналы на предмет возможных злоупотреблений интерфейсом Prompt, при необходимости сменив скомпрометированные административные учётные данные.
Дополнительно специалистам рекомендуется провести всесторонний пересмотр безопасности других модулей, которые могут генерировать HTML из пользовательских данных. Применение политики безопасности контента и реализация правил межсетевого экрана веб-приложений для обнаружения тегов сценариев в неожиданных контекстах могут обеспечить защиту в глубину. Регулярное обновление всех сторонних компонентов и выполнение аутентифицированного сканирования на уязвимости являются лучшими практиками для предотвращения повторного появления аналогичных проблем. Обнаружение CVE-2025-59545 подчёркивает важность правильного кодирования вывода и тщательного код-ревью для генераторов динамического HTML. Организациям, использующим DNN Platform, следует рассматривать этот патч как критический, обеспечивая безопасность своих веб-приложений от атак внедрения сценариев. Непрерывный мониторинг и своевременные обновления являются важными шагами для поддержания robust security posture в модульных системах управления контентом.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-59545
- https://github.com/dnnsoftware/Dnn.Platform/security/advisories/GHSA-2qxc-mf4x-wr29