Kodove

#6639de 56,330
43.8CVSS total
Vulnerabilidades · 6
Média
2
Alta
4
PT-2026-38392
8.6
2026-05-01
Npm · Vm2 · CVE-2026-44001
**Nome do Software Vulnerável e Versões Afetadas** vm2 versões anteriores a 3.11.0 **Descrição** Existe um problema de escape de sandbox onde o código executado na sandbox pode travar o processo host do Node.js. Isso ocorre quando um construtor de `Promise` dispara uma rejeição não tratada (unhandled rejection) que se propaga para o host. Especificamente, se um executor de `Promise` define `Error.name` como um `Symbol()` e então acessa `.stack`, a função interna `FormatStackTrace` do V8 tenta realizar uma operação `Symbol.toString()`, o que lança um `TypeError` no reino do host. Como o erro se origina dentro do executor e não possui um manipulador `.catch()`, ele resulta em uma rejeição não tratada que encerra o processo host. Detalhes técnicos incluem: - O wrapper `localPromise` em `lib/setup-sandbox.js:38` não envolve o executor em um bloco try-catch. - O `resetPromiseSpecies` e as sobrescritas de `.then()` e `.catch()` em `lib/setup-sandbox.js:165-230` não interceptam rejeições originadas do próprio executor. - A configuração `allowAsync: false` não mitiga o problema porque o construtor de `Promise` continua disponível, e o bloqueio do `.catch()` garante que a rejeição permaneça não tratada. Isso pode levar a um loop contínuo de negação de serviço (DoS), onde o processo host trava ao receber uma única requisição, potencialmente ignorando políticas de reinicialização automática. **Recomendações** Atualize o vm2 para a versão 3.11.0.
PT-2026-28163
7.5
2026-03-25
Liquidjs · Liquidjs · CVE-2026-33287
**Name of the Vulnerable Software and Affected Versions** LiquidJS versions prior to 10.25.1 **Description** LiquidJS is susceptible to a denial of service condition due to insufficient memory limit enforcement within the `replace first` filter. The filter utilizes JavaScript's `String.prototype.replace()`, which interprets `$&` as a back reference to the matched substring. This allows an attacker to achieve exponential memory amplification, potentially reaching a 625,000:1 ratio, while remaining within the defined `memoryLimit`. The `replace first` filter only accounts for the input string length when calculating memory usage, failing to consider the expanded output resulting from the `$&` expansion. This issue does not affect the `replace` or `replace last` filters, which handle `$&` as a literal string or use manual substring operations, respectively. A proof-of-concept (PoC) demonstrates that a small input string can be amplified to 312.5 MB, causing significant service disruption. Concurrent attacks with 20 requests can lead to legitimate user requests being delayed by up to 10.9 seconds, and the server becoming unresponsive for approximately 29 seconds. The vulnerability is triggered by crafting a malicious Liquid template containing repeated `$&` patterns within the `replace first` filter. The **API endpoint** used for exploitation is `/render`, which accepts user-provided Liquid templates via a POST request. The vulnerable parameter is `template`, which contains the malicious Liquid code. **Recommendations** Update LiquidJS to version 10.25.1 or later.