Критическая уязвимость в библиотеке next-mdx-remote угрожает безопасностю React-приложений

vulnerability

Исследователи обнаружили критическую уязвимость в популярной библиотеке next-mdx-remote, которая широко используется для рендеринга MDX-контента в приложениях на React. Уязвимость, получившая идентификатор CVE-2026-0969, позволяет злоумышленникам выполнять произвольный код на серверах, обрабатывающих непроверенный пользовательский контент. Проблему выявили специалисты Университета Седжон, а её детали были обнародованы компанией HashiCorp 11 февраля 2026 года в бюллетене безопасности HCSEC-2026-01.

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

Уязвимость затрагивает функцию "serialize" в версиях библиотеки с 4.3.0 по 5.0.0. Эта функция предназначена для компиляции MDX-контента, который затем динамически отображается как на стороне клиента, так и на стороне сервера. Основная причина уязвимости заключается в недостаточной санитизации (очистке) MDX-контента при включенной поддержке JavaScript-выражений. В результате злоумышленник может внедрить вредоносный код через MDX-контент, предоставленный пользователем, и добиться удаленного выполнения кода (RCE, Remote Code Execution) на уязвимом сервере.

Такая атака представляет серьезную угрозу для любого приложения, которое позволяет недоверенным пользователям загружать или отправлять MDX-контент для последующей обработки на сервере. Например, под угрозой могут оказаться платформы для ведения блогов, CMS-системы или образовательные ресурсы с функционалом пользовательских публикаций. Успешная эксплуатация уязвимости может привести к полному компрометированию сервера.

Компания HashiCorp, выступающая сопровождающим проекта, оперативно отреагировала на угрозу. Проблема была устранена в новой мажорной версии библиотеки - next-mdx-remote 6.0.0. Обновление содержит важные изменения, направленные на повышение безопасности. Ключевым нововведением стало отключение JavaScript-выражений по умолчанию. Это достигается за счет установки опции "blockJS" в значение "true" для функций "serialize" и "compileMDX". Такая мера эффективно блокирует возможность выполнения произвольного кода в большинстве стандартных сценариев развертывания.

Однако разработчики понимают, что некоторым приложениям функциональность JavaScript-выражений необходима. Для таких случаев в версии 6.0.0 предусмотрен дополнительный защитный механизм - опция "blockDangerousJS". Она включается автоматически, если разработчик вручную отключит блокировку выражений, установив "blockJS" в "false". Эта опция обеспечивает защиту "по мере возможности" от опасных операций. В частности, она блокирует использование таких конструкций, как "eval", "Function", а также доступ к объектам "process", "require" и другим глобальным объектам, которые часто используются для атак с выполнением кода.

Эксперты по кибербезопасности настоятельно рекомендуют всем организациям, использующим next-mdx-remote в серверных средах для обработки непроверенных данных, немедленно оценить степень своего риска. Единственным надежным способом полностью устранить угрозу является обновление библиотеки до версии 6.0.0. После обновления администраторам и разработчикам необходимо тщательно проверить конфигурацию своих приложений. Важно убедиться, что новые параметры безопасности настроены корректно, а поддержка JavaScript-выражений включена только в тех случаях, когда это абсолютно необходимо, и при этом задействованы все доступные меры защиты.

Обнаружение уязвимости в такой распространенной библиотеке, как next-mdx-remote, служит очередным напоминанием о важности проверки цепочки поставок программного обеспечения. Разработчикам следует регулярно обновлять зависимости и проводить аудит кода, особенно в компонентах, обрабатывающих пользовательский ввод. Инцидент также подчеркивает ценность ответственного раскрытия уязвимостей, когда исследователи и сопровождающие проектов работают вместе для оперативного устранения угроз до их широкой эксплуатации в дикой природе.

Ссылки

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