プラットフォーム
nodejs
コンポーネント
liquidjs
修正版
10.25.1
10.25.0
CVE-2026-30952は、JavaScriptテンプレートエンジンliquidjsにおけるパス・トラバーサル脆弱性です。攻撃者は、テンプレートコンテンツを操作することで、本来アクセスできないファイルにアクセスできる可能性があります。この脆弱性は、liquidjsのバージョン10.25.0以前に影響を与え、バージョンアップによって修正されています。
この脆弱性は、攻撃者がliquidjsのテンプレートエンジンを介してサーバー上の任意のファイルにアクセスすることを可能にします。layout、render、includeタグにおいて、絶対パスを直接指定したり、dynamicPartials: trueが有効な状態でLiquid変数を通じてファイルパスを指定することで、この脆弱性が悪用されます。これにより、機密情報を含む設定ファイルやソースコードが漏洩する可能性があります。攻撃者は、この脆弱性を利用して、サーバーの他の部分へのアクセスを試み、さらなる攻撃を仕掛けることも考えられます。
この脆弱性は、2026年3月10日に公開されました。現時点では、公的なPoC(Proof of Concept)は確認されていませんが、パス・トラバーサル脆弱性であるため、悪用される可能性は否定できません。CISA KEVカタログへの登録状況は不明です。
Applications built on Node.js that utilize liquidjs for templating, particularly those with default configurations enabling dynamicPartials: true or allowing user-controlled template content, are at risk. Shared hosting environments where multiple applications share the same server and file system are also particularly vulnerable, as a compromise in one application could potentially lead to access to files belonging to others.
• nodejs / server:
ps aux | grep liquidjs
find / -name "liquidjs" -type d 2>/dev/null• generic web:
curl -I 'http://your-application.com/templates/include?file=../../../../etc/passwd' # Attempt to access sensitive files
grep -r 'require.resolve' /path/to/your/application/node_modules/liquidjs/disclosure
エクスプロイト状況
EPSS
0.02% (5% パーセンタイル)
CISA SSVC
この脆弱性への対応策として、まずliquidjsをバージョン10.25.0以降にアップデートすることを推奨します。アップデートが困難な場合は、dynamicPartials: trueオプションを無効化することで、脆弱性の悪用をある程度軽減できます。また、WAF(Web Application Firewall)を導入し、不正なファイルアクセスを検知・遮断するルールを設定することも有効です。ファイルアクセスログを監視し、異常なアクセスパターンを検出することも重要です。アップデート後、require.resolve()が想定外のディレクトリを解決しないことを確認してください。
liquidjs のバージョンを 10.25.0 以降にアップデートしてください。これにより、任意のファイルへのアクセスを許可するパス・トラバーサル脆弱性が修正されます。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2026-30952は、liquidjsにおけるパス・トラバーサル脆弱性であり、攻撃者がテンプレートを通じて任意のファイルにアクセスできる可能性があります。
liquidjsのバージョン10.25.0以前を使用している場合は、影響を受けます。バージョンアップを推奨します。
liquidjsをバージョン10.25.0以降にアップデートしてください。
現時点では公的なPoCは確認されていませんが、悪用される可能性は否定できません。
https://github.com/harttle/liquidjs/pull/855 を参照してください。