Node.jsのデフォルトのパッケージマネジャー「npm」に、ワーム拡散に利用される恐れのある脆弱性が発覚した。米カーネギーメロン大学のセキュリティ機関CERT/CCが3月25日に公開したセキュリティ情報で注意を呼び掛けている。



npmチームのセキュリティ情報

CERT/CCによると、npmの脆弱性は、「semver（セマンティックバージョニング）の使用奨励」「npmにいったんログインするとその状態が続く永続的認証の利用」「中央集中型レジストリの使用」という3つの要因に起因する。

この3要因の組み合わせにより、パッケージのインストールを通じて自己増殖するワームを作成できてしまうことが分かった。現時点で現実的な解決策は確認されていないという。

緩和策としては、npmにログインしたままの状態を保たないなどの対策を挙げている。npmのブログでは、インストール時のワーム拡散を防ぐためのコードや、インストール時にスクリプトを実行させないためのコードなども紹介している。

ただ、ソフトウェアの安全性を手作業で検証することは実質的に不可能だと同ブログでは説明、「npmではレジストリで提供されているパッケージの安全性を保証できない」として、悪質なコードが見つかった場合は報告してほしいと呼びかけている。強化型脆弱性スキャンの導入に向けてセキュリティベンダーとも協力しているが、まだ準備は整っていないという。