Всем привет!
Интересная статья от Imperva, в которой рассказано о том, как команда нашла CVE-2022-40764, эксплуатация которой позволяет реализовать «arbitrary command execution» при использовании Snyk CLI.
Статья читается как небольшой детектив и на одном дыхании! Получился примерно такой путь:
🍭 Monkey patch для Snyk CLI с целью журналирования значимых NodeJS действий (например, доступ к файлам, запуск shell)
🍭 Да, все так, оказалось, что shell запускается! Дальнейшее исследование привело к идентификации причины: файл
vendor.json и поле ignore
🍭 Первый payload, подготовленной командой не сработал из-за особенностей «обработки» значения, указанного в поле ignore
🍭 А вот второй… уже позволил запустить калькулятор на рабочей станции пользователя!Реализацию подобной атаки выполнить сложно. Однако, у Snyk есть VS Code plugin, который использует CLI для автоматического сканирования кода при открытии IDE. Остается только сделать так, чтобы пользователь открыл «интересующий» код в VS Code. PoC-ролик, примеры monkey patch, payload’ов и код обработки поля
ignore можно увидеть в статье.Команда Snyk, в свою очередь, достаточно оперативно устранила дефект и выпустила соответствующий патч 😊