概要
@pensar/apex npm パッケージ(バージョン 0.0.58 以前)の createSmartEnumerateTool() 関数で OS コマンドインジェクション脆弱性が発見されました。
src/core/agent/tools.ts の実装において、extensions 配列と url パラメータからの値をサニタイズせずに文字列連結でシェルコマンドを構築し、Node.js の child_process.exec() に渡します。exec() はシェルを起動するため、これらの値に含まれるシェルメタ文字がホストのシェルに解釈され、実行プロセスの権限で任意のOSコマンドが実行されます。
CVSSベクトル
| 要素 | 値 |
|---|---|
| スコア | 8.8(HIGH) |
| CWE | CWE-78(OSコマンドインジェクション) |
| 攻撃元区分(AV) | ネットワーク(N) |
| 攻撃条件の複雑さ(AC) | 低(L) |
| 必要な特権(PR) | 低(L) |
影響を受けるソフトウェア
| パッケージ | バージョン |
|---|---|
| @pensar/apex(npm) | ≤ 0.0.58 |
修正バージョンと回避策
対応手順:
npm list @pensar/apexでバージョンを確認する- npmjs.com で最新バージョンを確認し、アップデートする
- 外部ユーザー入力が
extensionsやurlパラメータに渡らないよう入力バリデーションを実施する
参考: 類似の AI エージェントフレームワーク系パッケージでも入力サニタイズが不十分なケースが見られます。ユーザー入力をシェルコマンドに渡す実装は execFile() などのシェル非経由の API を使用することを推奨します。
関連リンク
データソース: NVD (NIST)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
