Критические уязвимости в Node.js угрожают безопасности Windows-приложений: патч-траверсал и HashDoS-атаки

vulnerability

Команда разработчиков Node.js выпустила экстренные обновления для устранения двух опасных уязвимостей, которые могут быть использованы злоумышленниками для атак на приложения, работающие под управлением Windows, а также для организации распределенных атак типа «отказ в обслуживании» (DoS). Проблемы, зарегистрированные как CVE-2025-27210 и CVE-2025-27209, затрагивают актуальные версии Node.js 20.x, 22.x и 24.x, что делает их критически важными для исправления.

Критическая уязвимость

Первая уязвимость, CVE-2025-27210, связана с возможностью обхода механизмов защиты от патч-траверсала (path traversal) в Windows-системах. Исследователь под псевдонимом oblivionsage обнаружил, что злоумышленники могут использовать зарезервированные имена устройств Windows, такие как CON, PRN и AUX, чтобы обойти проверки в функции "path.normalize()". Это позволяет получить несанкционированный доступ к защищенным файлам и системным ресурсам. Проблема была оперативно исправлена разработчиком RafaelGSS, но сам факт ее существования подчеркивает важность тщательного тестирования даже после внедрения защитных механизмов.

Вторая уязвимость, CVE-2025-27209, представляет собой атаку типа HashDoS, которая стала возможной из-за изменений в алгоритме хеширования строк в движке V8, используемом в Node.js 24.x. Обновление V8 в Node.js v24.0.0 перевело вычисление хешей на rapidhash, что неожиданно привело к повторному появлению уязвимости к коллизиям. В результате злоумышленники, контролирующие входные строки, могут искусственно создавать большое количество коллизий, что приводит к резкому замедлению работы приложений и потенциальному отказу в обслуживании. Хотя команда V8 не считает эту проблему критической с точки зрения безопасности, Node.js отнесся к ней серьезно, учитывая реальные риски для пользователей. Уязвимость была выявлена исследователем sharp_edged и исправлена разработчиком targos.

Для устранения этих угроз были выпущены обновленные версии Node.js: v20.19.4, v22.17.1 и v24.4.1. Особенно важно как можно скорее обновиться тем, кто использует Node.js на Windows или работает с версией 24.x, поскольку обе уязвимости могут быть использованы для серьезных атак.

Стоит отметить, что устаревшие версии Node.js, не получающие официальных обновлений, остаются уязвимыми, что еще раз подчеркивает необходимость своевременного обновления ПО в соответствии с официальным графиком поддержки. Для отслеживания будущих исправлений разработчики рекомендуют подписаться на рассылку nodejs-sec и следовать процедуре отчетности об уязвимостях, описанной в политике безопасности проекта.

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

Ссылки

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