CVE Lite CLI: オープンソース依存関係脆弱性スキャナー

JavaScriptおよびTypeScriptプロジェクトにおける依存関係脆弱性スキャンは、長きにわたって開発パイプラインの終端に位置してきました。プルリクエストが開かれ、継続的インテグレーションが実行され、セキュリティスキャナーがCVE識別子のリストを返し、開発者はコード作成から数時間または数日後にそれらをトリアージしなければなりません。現在公式に認定されたOWASP IncubatorプロジェクトであるCVE Lite CLIは、そのチェックを開発者のターミナルに移します。

Sonu Kapoorによって管理されているこのオープンソースツールは、プロジェクトのロックファイルを読み取り、Open Source Vulnerabilitiesデータベースにクエリを実行し、関連するパッケージマネージャーに対応したコピー&ラン可能な修正コマンドを返します。npm、pnpm、Yarn、およびBunに対応しています。

Image

フィードバックループを早期に閉じる

「多くのチームでは、依存関係の脆弱性はまずCI内で表面化します。これは有用ですが、ワークフローの後期に発生することが多いです」とKapoorはHelp Net Securityに語りました。「開発者が依存関係を変更し、ブランチをプッシュし、CIを待ち、大規模なスキャナーレポートを取得してから、出力を逆方向にたどって、何が変わったのか、脆弱なパッケージが直接なのか推移的なのか、そして実際に何を修正できるのかを理解しなければなりません。」

CVE Lite CLIはアカウント、クラウドプラットフォーム、ソースコードをローカルで実行し、開発者のマシンから何も流出しません。スキャンはキャッシュされたアドバイザリデータベースに対して数秒で完了します。出力は直接依存関係と推移的な依存関係を区別し、最優先の修正を特定し、それを適用するための正確なインストールコマンドを提供します。推移的なnpmの検出については、既存の親の範囲が脆弱でない子に解決できる場合、ツールはnpm update <parent>を推奨し、親自体がアップグレードが必要な場合はそのケースを指摘します。

Kapoorは設計意図を簡潔に述べました。「私が関心を持っている変化は、『CIが後で大規模なレポートを見つけた』から『開発者が依存関係の変更がまだ新鮮な状態でローカルに明確な修正計画を得る』への移行です。」

インテグレーションはオプトイン

CVE Lite CLIはデフォルトでは依存関係のインストールをブロックしたり、開発を中断したりしません。チームはチェックを配置する場所を選択します。手動で実行したり、パッケージスクリプトとして追加したり、プリコミットまたはプリプッシュフックに組み込んだり、プロジェクトの専用GitHub Actionを通じてCI内で実行したりすることができます。

「CVE Lite CLIは高速ローカルスキャナーと構造化された出力を提供します。チームはそのチェックをワークフロー内のどこに配置するかを決定します」とKapoorは述べました。

継続的インテグレーションの場合、--fail-onフラグは検出結果が重大度閾値に達しているか超えている場合にゼロ以外で終了します。SARIF出力はGitHub Code Scanningに直接アップロードされ、セキュリティタブのインラインプルリクエストアノテーションとして結果を表示します。

アドバイザリソースとしてのOSV

OSVをクエリする決定は、プロジェクトのパッケージおよびバージョン指向のスキャンに焦点を当てた意図を反映しています。Kapoorは、OSVのデータモデルはロックファイルスキャナーに適しており、アドバイザリをオープンソースパッケージエコシステムと影響を受けるバージョン範囲に明確にマッピングするため、適切だと述べました。

彼は任意の単一ソースの限界を認めました。「単一のアドバイザリソースが完璧と見なされるべきだとは思いません。カバレッジのギャップ、タイミングの違い、重大度の違い、および修正バージョンのデータ品質はソース間で異なる可能性があります。そのため、CVE Lite CLIはその出力においてOSVがアドバイザリソースであることを明示的に述べています。」

将来の作業には、より明確なエイリアス表示、修正バージョンの信頼度への可視化、およびツールの速度を低下させずに追加のアドバイザリフィードの相互参照が含まれる可能性があります。

実世界でのパフォーマンス

Kapoorは、CVE Lite CLIが既知の依存関係CVEを持つ実在のアプリケーションに対してどのようにパフォーマンスを発揮するかを確認したいと述べ、その依存関係ツリーが実世界のJavaScriptプロジェクトのそれと類似しているため、OWASPジュースショップを代表的なテストケースとして指摘しました。

Kapoorによると、このツールは2つの修復パスで検出結果を39から18に削減し、高重大度の問題をクリアしながら、上流の依存関係リスクを開発者がローカルで対処できない問題から分離しやすくしました。「有用な部分は、開発者が直接どの脆弱性、推移的にどの脆弱性、今どの脆弱性を修正できるか、そしてどの脆弱性がより広い依存関係の決定を必要とするかを理解するのに役立つことです」とKapoorは述べました。

オフラインサポートとエンタープライズ利用

制限されたネットワーク環境およびエアギャップ環境の場合、CLIはアドバイザリデータベースを事前に同期することをサポートしています。約217,000件のアドバイザリレコードの取り込みは9秒以下で完了し、プロジェクトによると初期実装より9.9倍高速です。スキャンはその後、発信APIコールなしで実行されます。

CVE Lite CLIはまた、install-skillコマンドを通じてClaude Code、Codex CLI、Gemini CLI、Cursor、およびGitHub Copilot用のAIアシスタントスキルファイルを書き込み、コーディングアシスタントがスキャン出力を解析し、修復計画を生成できるようにします。

CVE Lite CLIはGitHubで無料で利用できます。

翻訳元: https://www.helpnetsecurity.com/2026/05/20/cve-lite-cli-open-source-dependency-vulnerability-scanner/

ソース: helpnetsecurity.com