Node.js-модуль, который скачали из npm более 7 миллионов раз, оказался идеальной мишенью для DoS-атак.
Компонент под названием express-fileupload из каталога npm содержит в себе серьезную уязвимость. С помощью нее хакеры могут быстро вывести из рабочего состояния программное обеспечение, где используется express-fileupload, и получить полный контроль над оболочкой Shell.
Такой тип угроз называют Prototype Pollution. Это распространенное в JavaScript явление, которое возникает ввиду сущности самого языка. JS прототипный: каждый объект, функция или набор данных в нем обладает таким свойством как prototype. Его можно модифицировать на ходу, используя специальный метод _proto_.
Такая логика изначально заложена в JavaScript, чтобы разработчики могли быстро модифицировать и менять JS-объекты, используя больше методов и свойств.
Хакеры используют эту особенность языка и внедряют в код несовместимые типы объектов, тем самым генерируя ошибки. Эти ошибки в свою очередь выводят из строя приложение и открывают дополнительные возможности для взлома.
Тем не менее специалисты по безопасности считают, что под угрозой не все пользователи, загрузившие express-fileupload. В зоне риска находятся только те приложения, где включена опция parseNested. Это обязательное условие для успешной атаки и получения контроля над оболочкой Shell.
На текущий момент разработчик уязвимого модуля уже выпустил патч, который исправляет обнаруженную ошибку. Всем пользователям express-fileupload стоит обновиться до версии 1.1.9.
Источник: GitHub
Комментарии