Исторически библиотека vm2 использовалась в первую очередь на SaaS-платформах, поддерживающих выполнение пользовательских скриптов, в онлайн-компиляторах кода, в чат-ботах и многочисленных проектах с открытым исходным кодом.CNews
Санитарная недообработка Нововыявленная уязвимость связана с тем, что vm2 не может должным образом изолировать Promises - компонент, обрабатывающий асинхронные операции и обеспечивающий выполнение кода исключительно контекстом «песочницы».CNews
Хотя vm2 выполняет проверку корректности обратных вызовов собственной внутренней реализации Promise, асинхронные функции возвращают глобальный Promise, коллбэки которого - .then() и .catch() - не проходят надлежащую проверку корректности.CNews
Опенсорсная библиотека vm2 позволяет создавать безопасный контекст для выполнения, в том числе, ненадежного кода JavaScript, для которого не предполагается доступа к файловой системе.CNews