Sophosは2018年2月23日(米国時間)、「NPM update changes critical Linux filesystem permissions, breaks everything|Naked Security」において、Node.jsのNPMにバグがあり、アップデートを実施すると誤ったパーミッション設定を行うことになり脆弱な状態につながると指摘した。

対処策として、自動アップデートの機能をしばらく停止してNPM 5.7.0の利用をスキップし、問題が解決したバージョンにアップデートすることが挙げられている。

Web技術はソフトウェア開発が進んでいる分野の1つであり、JavaScriptエンジンの機能向上は注目すべき進展を遂げている。JavaScriptは主にWebブラウザで実行される技術だったが、JavaScriptエンジンをサーバサイドで動作させることで、サーバサイドのプログラミング言語として使われるようになっていった。特にNode.jsの登場でサーバサイドにおけるJavaScriptの利用は大きく進んだ。

  • NPMではさまざまなユーザがパッケージを作成してほかのユーザが利用できる - 資料: npm提供

    NPMではさまざまなユーザーがパッケージを作成して、他のユーザーが利用できる - 資料: npm

  • NPMパッケージは種類も数もさまざま - 資料: npm提供

    NPMパッケージは種類も数もさまざま - 資料: npm

  • こうした構造を取ることで再利用性を向上させている - 資料: npm提供

    こうした構造を取ることで再利用性を向上させている - 資料: npm

Node.jsを利用することで、短いコードで多機能な処理を実施することが可能。その反面、Node.jsを使いこなすには多数存在するパッケージを適切に組み合わせる必要があり、大抵はNPMと呼ばれる専用のパッケージマネージャを使うことになる。

今回Sophosが指摘した内容はこのNPMの処理に問題があるというもので、システムに影響を与える可能性がある誤ったパーミッション設定が行われていたという。該当するバージョンの利用を見送り、問題が解決したバージョンへアップデートすることが望まれる。