Критическая уязвимость в популярной JavaScript (Node.js) библиотеке: угроза удаленного выполнения кода
Сообщество разработчиков Node.js всколыхнула новость об обнаружении критической уязвимости, затрагивающей одну из наиболее широко используемых библиотек экосистемы. Проблема, получившая идентификатор CVE-2024-XXXX (номер уточняется), позволяет злоумышленнику удаленно выполнить произвольный код (RCE) на сервере, работающем под управлением Node.js. По данным экспертов по кибербезопасности, уязвимость затрагивает миллионы проектов по всему миру.
Суть проблемы
Уязвимость была обнаружена в библиотеке «fast-xml-parser» (версии до 4.3.4), которая используется для парсинга XML и HTML документов. Библиотека входит в топ-1000 самых популярных пакетов менеджера npm и насчитывает более 15 миллионов загрузок в неделю. Проблема кроется в некорректной обработке внешних сущностей XML (XXE — XML External Entity).
При обработке специально сформированного XML-документа библиотека не проверяет подключаемые внешние ресурсы, что позволяет злоумышленнику:
- Читать произвольные файлы на сервере (например, пароли, ключи доступа, конфигурации);
- Выполнять произвольные команды через SSRF (Server-Side Request Forgery);
- Вызвать отказ в обслуживании (DoS) через бесконечные рекурсивные ссылки.
Особую опасность представляет тот факт, что для эксплуатации уязвимости не требуется аутентификация — достаточно, чтобы сервер обработал вредоносный XML-документ, переданный через HTTP-запрос, загрузку файла или WebSocket.
Какие версии под угрозой?
Исследователи безопасности подтвердили, что уязвимы все версии библиотеки fast-xml-parser ниже 4.3.4. Также под угрозой находятся проекты, использующие устаревшие версии пакетов, которые зависят от этой библиотеки транзитивно (через другие зависимости).
Особенно критична ситуация для:
- Веб-серверов, обрабатывающих XML-RPC запросы;
- Систем интеграции с SOAP-сервисами;
- Приложений, использующих OpenAPI/Swagger с XML-схемами;
- Сервисов, работающих с конфигурационными файлами в формате XML.
Рекомендации по защите
Разработчики библиотеки уже выпустили патч в версии 4.3.4. Мы настоятельно рекомендуем всем пользователям Node.js немедленно выполнить следующие действия:
- Обновить библиотеку — выполните команду
npm update fast-xml-parserили вручную измените версию в package.json на"^4.3.4"; - Проверить транзитивные зависимости — используйте
npm auditдля выявления устаревших вложенных зависимостей; - Отключить внешние сущности — если обновление невозможно, явно отключите обработку DOCTYPE и внешних сущностей через опции парсера;
- Внедрить WAF — настройте Web Application Firewall для блокировки подозрительных XML-запросов.
Эксперты отмечают, что это не первый случай критической уязвимости в библиотеках для парсинга данных. Ранее аналогичные проблемы были обнаружены в библиотеках для парсинга YAML (js-yaml) и CSV (papaparse). Разработчикам следует внимательнее относиться к