CVE-2026-10796 nvmのバージョン指定時に任意のコマンド実行の脆弱性

この記事はAIがNVDのCVE情報をもとに要約・生成したものです。影響範囲や対策は、必ずNVDおよび各ベンダーの公式情報をご確認ください。

公開日: 2026-06-04T18:16:28.150 / 更新日: 2026-06-04T20:33:13.913 / CVSS: 7.5 / 深刻度: HIGH

nvm(Node Version Manager)のバージョン0.40.4までの実装では、設定されたNode.js/io.jsミラーから取得したバージョン文字列に任意のコマンドが含まれている場合、それを実行する可能性があります。この脆弱性は、非デフォルトのミラーを使用する場合や、TLSを介していないミラーにアクセスする際の機械的な中間者攻撃(MITM)が成功した場合に発生します。影響を受ける主な処理は、`nvm install`によるバージョン指定時のダウンロード処理とチェックサム確認処理です。確認時には、使用しているミラーがデフォルトのhttps://nodejs.org(TLS経由)であるか、非デフォルトミラーを使用している場合のセキュリティ設定を点検することが重要です。特に`eval`や`awk`によるコマンド実行が発生するリスクに注意が必要です。

参照情報

ソクラテスの問い、プラトンの備え

ソクラテス

プラトンよ、この脆弱性の存在は、私たちが日常的に信頼しているツールの裏側に潜むリスクを浮き彫りにしているな。この場合、nvmのバージョン指定が不正に操作される可能性がある。だが、あなたはこのリスクをどのように捉えるだろうか?

プラトン

確かに、ソクラテス。まず確認すべきは、ユーザーが使用しているミラーの設定だ。デフォルトのhttps://nodejs.org(TLS経由)を使っているか、それとも非デフォルトミラーを設定しているか。もし後者なら、そのミラーの信頼性とセキュリティ設定を点検する必要がある。たとえば、`nvm install`を実行する際、ダウンロード先のURLが意図せず変更されていないかを確認するべきだろう。

ソクラテス

では、TLSの有無が重要な理由は?

プラトン

TLSが使われていないミラーでは、中間者攻撃(MITM)のリスクが高まる。たとえば、`index.tab`ファイルが改ざんされ、バージョン文字列に`$(id)`のようなコマンドが含まれていた場合、`eval`や`awk`を通じて実行される可能性がある。これは、ユーザーの権限で任意のコードが走る危険性を意味する。

ソクラテス

だが、具体的な対策は?

プラトン

パッチ適用が最優先だ。現時点ではmasterブランチに修正が反映されており、次のリリースで正式に公開される予定だ。その際、`eval`や`awk`の使用を避け、引数を`argv`として渡すなど、コードの変更点を確認する必要がある。また、変更管理の観点から、nvmのバージョンアップを変更履歴に明記し、環境に影響がないかをテストするプロセスを確立すべきだ。

ソクラテス

監視の面では?

プラトン

`curl`や`wget`のログを監視し、不正なURLアクセスが発生していないかを定期的にチェックするべきだ。また、ミラーの設定が意図せず変更されていないかを、自動化されたポリシーで検出する仕組みも有効だろう。

ソクラテス

ベンダー情報の確認は?

プラトン

nvmの公式リポジトリや、Node.jsの公式ドキュメントを確認し、修正後のバージョンがどのリリースに含まれるかを把握する。また、セキュリティ情報の配信を受信するため、メンテナーやサブスクリプションリストに登録しておくことも重要だ。

ソクラテス

最後に、この脆弱性から学ぶべきことは?

プラトーン:「信頼」は常に検証を伴うものだ。デフォルト設定を盲信せず、自身の環境に合ったセキュリティポリシーを構築する。たとえば、ミラーのURLを手動で指定する際には、`https://`が必ず含まれているかを確認するなど、小さな習慣が大きなリスクを防ぐ。

ソクラテス

では、あなたはこの脆弱性に対し、何を最も重視するか?

プラトン

「確認」と「適用」のサイクルだ。一度だけ確認したのでは済まされない。定期的な影響調査と、パッチ適用後の変更管理が、Linux運用の基盤となる。そして、そのプロセスをユーモアを交えて実行する。たとえば、ミラーの設定を「家の鍵」に例え、TLSを「ドアの鍵穴に鍵を挿す」行為として捉える。その鍵が正しいかを確認する習慣が、システムの安全を守る。

関連キーワード: curl