PT-2026-43459 · Git+2 · Liquidjs
CVSS v3.1
6.5
Média
| Vetor | AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Nome do Software Vulnerável e Versões Afetadas
LiquidJS versões anteriores a 10.26.0
Descrição
O LiquidJS é um mecanismo de templates escrito em JavaScript. Existe uma falha onde a opção
renderLimit, projetada para mitigar a Negação de Serviço (DoS) ao limitar o tempo consumido por cada chamada render(), pode ser completamente ignorada. Isso ocorre quando uma tag {% for %} ou {% tablerow %} é utilizada com um corpo vazio. Como a verificação de tempo por iteração só é acionada quando o corpo contém pelo menos um nó de template, um template com um loop vazio itera a coleção completa sem consultar o renderLimit.Isso permite que um autor de templates com baixos privilégios monopolize uma thread do event-loop do Node.js por um período controlado pelo invasor, o qual escala linearmente com o número de iterações até o
memoryLimit. Em ambientes multi-tenant, isso pode travar requisições em andamento e impactar a disponibilidade do sistema.Recomendações
Atualize para a versão 10.26.0.
Como medida paliativa temporária, restrinja a capacidade de usuários com baixos privilégios de criarem templates que contenham tags
{% for %} ou {% tablerow %} com corpo vazio.Exploit
Correção
DoS
Resource Exhaustion
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Liquidjs