A biblioteca JavaScript vm2 acaba de lançar dois novos patches para mitigar duas vulnerabilidades críticas, CVE-2023-29199 e CVE-2023-30547, ambos avaliados 9.8 no sistema de pontuação CVSS. versões 3.9.16 e 3.9.17, respectivamente, contém as correções para os bugs que permitem que um intruso escape da sandbox e execute o código no contexto do host.
SeungHyun Lee, o pesquisador de segurança responsável por descobrir e relatar as falhas, também publicou exploits PoC. Isso não acontece muito depois de outra falha de escape do sandbox (CVE-2023-29017, CVSS 9.8) foi abordado. Os pesquisadores da Oxeye identificaram uma vulnerabilidade de execução remota de código particularmente grave (CVE-2022-36067, pontuação CVSS: 9.8) em vm2 em dezembro passado, codinome Sandbreak.
CVE-2023-29199
versões vm2 até 3.9.15 são vulneráveis a uma exploração que permite que os agentes de ameaças ignorem o `handleException()` lógica de sanitização de exceção. Esse desvio permite o vazamento de exceções de host não sanitizadas que fornecem os meios para escapar da caixa de proteção e executar código no contexto do anfitrião. O problema foi corrigido na versão 3.9.16.
CVE-2023-30547
A versão `3.9.17` de `vm2` inclui um patch para uma vulnerabilidade na sanitização de exceção que estava presente em todas as versões anteriores até `3.9.16`. Essa vulnerabilidade permitia que invasores utilizassem uma exceção de host não sanitizada dentro de `handleException()` para escapar da caixa de proteção e executar código arbitrário no contexto do host. A partir de agora, não existem soluções alternativas, portanto, os usuários são fortemente aconselhados a atualizar para a versão mais recente.
O que é a biblioteca JavaScript vm2?
vm2 é uma popular biblioteca de sandbox JavaScript utilizada por diferentes programas, como IDEs, editores de código, e ferramentas de segurança, que permite que o código seja parcialmente executado em servidores Node.js isolados enquanto protege os recursos do sistema e os dados externos contra acesso não autorizado.