Банк данных угроз безопасности информации (BDU) опубликовал информацию о критической уязвимости в популярном сборщике модулей JavaScript Rollup. Уязвимость, получившая идентификатор BDU:2026-04349, связана с неправильным ограничением имени пути к каталогу, что классифицируется как обход пути. Эксплуатация этой ошибки позволяет удаленному злоумышленнику выполнить произвольный код в контексте уязвимой системы. Данная проблема затрагивает множество версий инструмента, широко используемого в современной веб-разработке.
Детали уязвимости
Уязвимость, также зарегистрированная как CVE-2026-27606, затрагивает практически все основные ветки разработки Rollup. В частности, уязвимыми являются версии до 2.80.0, версии с 3.0.0 по 3.30.0, а также версии с 4.0.0 по 4.59.0. Согласно базовым векторам оценки CVSS, уязвимость получила максимальную оценку 10.0 по методологии CVSS 2.0 и критические 9.8 по CVSS 3.x. По обновленной шкале CVSS 4.0 оценка составляет 8.8, что соответствует высокому уровню опасности.
С технической точки зрения, ошибка типа CWE-22 возникает из-за недостаточной проверки входных данных, связанных с путями к файлам. Следовательно, злоумышленник может манипулировать этими данными, чтобы выйти за пределы предполагаемого каталога. В результате, в процессе сборки проекта может быть прочитан или записан произвольный файл в файловой системе. Более того, это создает условия для выполнения вредоносного кода. Поскольку Rollup часто используется в конвейерах непрерывной интеграции и развертывания, потенциальный ущерб от эксплуатации значительно возрастает.
Важно отметить, что, согласно BDU, эксплойт для данной уязвимости уже существует в открытом доступе. Это резко повышает актуальность угрозы, сокращая время между обнаружением уязвимости и ее активным использованием киберпреступниками. Основным способом эксплуатации указано манипулирование ресурсами. Разработчики подтвердили наличие проблемы и оперативно выпустили исправления.
Меры по устранению четко определены. Производитель, сообщество свободного программного обеспечения, выпустил патчи в исправленных версиях. Для закрытия уязвимости необходимо обновить Rollup до версий 2.80.0, 3.30.0 или 4.59.0 и выше, в зависимости от используемой мажорной ветки. Соответствующие рекомендации и ссылки на релизы опубликованы в консультативном бюллетене по безопасности на GitHub.
Текущий статус уязвимости обозначен как «устраненная». Однако, учитывая критический характер и наличие работающего эксплойта, задержка с обновлением может привести к серьезным последствиям. Например, злоумышленники могут внедрить вредоносный код в финальные сборки приложений, что потенциально затронет конечных пользователей. Кроме того, атака может быть направлена на серверы сборки с целью кражи конфиденциальных данных или получения устойчивости (persistence) в инфраструктуре.
Данный инцидент подчеркивает важность мониторинга зависимостей в жизненном цикле разработки программного обеспечения. Современные проекты зависят от сотен сторонних пакетов, и уязвимость в одном из ключевых инструментов, таком как сборщик, создает риски для всей цепочки поставок. Регулярное обновление зависимостей и использование средств автоматического сканирования на наличие известных уязвимостей должны быть стандартной практикой.
В заключение, уязвимость в Rollup является серьезной угрозой. Несмотря на доступность исправлений, реальная безопасность зависит от скорости их внедрения всеми пользователями. Разработчикам и компаниям рекомендуется немедленно проверить используемые версии и применить патчи. В противном случае, они рискуют стать целью для атак, направленных на компрометацию их проектов и инфраструктуры. Постоянная бдительность и оперативное применение обновлений остаются ключевыми принципами кибербезопасности в современной экосистеме разработки.
Ссылки
- https://bdu.fstec.ru/vul/2026-04349
- https://www.cve.org/CVERecord?id=CVE-2026-27606
- https://github.com/rollup/rollup/security/advisories/GHSA-mw96-cpmx-2vgc
- https://github.com/rollup/rollup/releases/tag/v2.80.0
- https://github.com/rollup/rollup/releases/tag/v3.30.0
- https://github.com/rollup/rollup/releases/tag/v4.59.0