PT-2026-31348 · Liquidjs · Liquidjs

CVE-2026-34166

·

Publicado

2026-04-08

·

Atualizado

2026-04-09

CVSS v3.1

5.3

Média

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Nome do Software Vulnerável e Versões Afetadas: LiquidJS versões anteriores a 10.25.3
Descrição: LiquidJS é um mecanismo de template. Uma falha existe no filtro 'replace' quando a opção 'memoryLimit' está habilitada. O cálculo do uso de memória não contabiliza corretamente o tamanho da string de saída, permitindo potencialmente que um invasor ignore a proteção DoS de limite de memória com uma amplificação de aproximadamente 2.500x. Isso pode levar a condições de falta de memória. A vulnerabilidade está relacionada ao filtro replace em src/filters/string.ts:137-142. O problema surge porque a função memoryLimit.use() considera apenas os comprimentos das entradas, enquanto a operação str.split(pattern).join(replacement) pode produzir uma saída significativamente maior. A classe Limiter em src/util/limiter.ts:3-22 verifica apenas o uso de memória no momento da chamada da função use() e não valida a alocação real de memória. Isso afeta as implementações que habilitam explicitamente o limite de memória para proteger contra entradas de template não confiáveis. Um invasor controlando o conteúdo do template pode explorar isso para causar falhas no processo Node.js, negação de serviço para outros usuários ou esgotamento de recursos.
Recomendações: Atualize para a versão 10.25.3 ou posterior do LiquidJS. Como medida temporária, evite usar o filtro 'replace' com conteúdo de template não confiável quando a opção 'memoryLimit' estiver habilitada.

Exploit

Correção

Resource Exhaustion

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-34166
GHSA-MMG9-6M6J-JQQX

Produtos afetados

Liquidjs