30秒で判断
- 対応すべき人: velocity.js(npm)をサーバーサイドで利用し、信頼できない入力をテンプレートとして処理している
- 対応不要な人: velocity.js を利用していない、または 2.1.7 以降を使用している
- 確認コマンド:
npm ls velocity.jsで依存バージョンを確認
概要
Velocity.js はApache VelocityテンプレートエンジンのJavaScript実装です。過去のCVE-2026-44966の修正が #set 代入ハンドラのみを対象としており、プロパティ参照式(references.ts 側)のフィルタが漏れていました。このため、攻撃者が制御するテンプレートから constructor.constructor を辿ってJavaScriptのFunctionコンストラクタに到達でき、サーバープロセス上で任意のシェルコマンド実行や環境変数・クラウド資格情報へのアクセス、内部ネットワークへのアクセスにつながる可能性があります。
これはサーバーサイドテンプレートインジェクション(SSTI)の典型的な悪用パターンで、テンプレート文字列に外部入力が混入する設計では特に危険です。過去の修正が部分的だったことによる修正漏れであるため、旧修正版(CVE-2026-44966対応版)を導入済みでも本件の影響を受けます。ユーザー入力をそのままテンプレートとして評価している箇所がないか、依存バージョンと併せて確認してください。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSSスコア | 9.8(CRITICAL) |
| CWE | CWE-94(コードのインジェクション) |
影響を受けるソフトウェア
| 製品 | ベンダー | バージョン |
|---|---|---|
| velocity.js | shepherdwind | 2.1.7 より前 |
修正バージョンと回避策
バージョン 2.1.7 以降へアップデートしてください。信頼できない入力をテンプレートとして評価する設計自体を避けることも推奨します。
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
