「tar」と「npm」に7件の脆弱性があることが発覚

GitHubのセキュリティチームは、npmパッケージの「tar」とnpm CLIで使用される「@npmcli/arborist」に深刻度の高い脆弱性を発見したと発表しました。

tarパッケージは、毎週平均して2,000万回ダウンロードされており、arboristは毎週30万回以上ダウンロードされています。

これらの脆弱性は、WindowsおよびUnixベースのユーザーの両方に影響し、パッチが適用されずに放置された場合、攻撃者は信頼されていないnpmパッケージをインストールしているシステム上で任意のコード実行を達成することができるというものです

2021年の7月から8月にかけて、セキュリティ研究者でありバグバウンティハンターでもあるRobert ChenとPhilip Papurtは、オープンソースのNode.jsパッケージであるtarと@npmcli/arboristに任意のコード実行が可能な脆弱性を発見しました。

GitHubセキュリティチームは研究者の報告をさらに検討した結果、前述のパッケージにWindowsおよびUnixベースのシステムに影響を与える深刻度の高い脆弱性をいくつか発見しました。

Node.jsのパッケージであるtarは、インストール後にnpmパッケージを解凍する必要のあるインストーラにとって、依然として中核的な依存関係にあります。このパッケージは、他の何千ものオープンソースプロジェクトでも使用されており、毎週約2,000万回のダウンロードが行われています。

arboristパッケージは、npm CLIが依存しているコアの依存関係で、node_modulesのツリーを管理するために使用されています。

デフォルトでは、npmのパッケージは、ZIP形式のアーカイブである.tar.gzまたは.tgzファイルとして出荷され、インストールツールによって抽出される必要があります。

これらのアーカイブを抽出するツールは、アーカイブ内の悪意のあるパスがファイルシステム上の既存のファイル(特に機密性の高いファイル)を上書きしないようにするのが理想です。

しかし、以下のような脆弱性があるため、npmパッケージを抽出すると、npm installコマンドを実行したユーザーの権限で任意のファイルを上書きすることができます。

「CVE-2021-32804、CVE-2021-37713、CVE-2021-39134、CVE-2021-39135 は、特に npm CLI において、悪意のある、あるいは信頼できない npm パッケージのインストールを処理する際に、セキュリティ上の影響があります」と GitHub の Chief Security Officer である Mike Hanley 氏は説明しています。

これらの問題の中には、パッケージのライフサイクルスクリプトの処理を防ぐために–ignore-scriptsを使用していたとしても、任意のコードが実行される可能性があります。

開発者の方は、tarの依存関係にあるバージョンを4.4.19、5.0.11、6.1.10にアップグレードし、@npmcli/arboristのバージョンを2.8.2にアップグレードして脆弱性を修正するようにしてください。

npm CLIについては、v6.14.15、v7.21.0以降のバージョンに修正プログラムが含まれています。また、GitHubによると、Node.jsのバージョン12、14、16には、修正されたtarバージョンが含まれており、安全にアップグレードすることができます。

これらの脆弱性に関する詳細は、GitHubのブログ記事で公開されています。

https://github.blog/2021-09-08-github-security-update-vulnerabilities-tar-npmcli-arborist/

これらの脆弱性は、 tar が信頼されていない tar ファイルの抽出に使用された場合や、 npm CLI が信頼されていない npm パッケージのインストールに使用された場合に、 特定のファイルシステム条件下でファイルの上書きや作成により任意のコードが実行される可能性があります。

tar は、npm パッケージの抽出やインストールに使用される npm の中核的な依存関係ライブラリです。

npmcli/arborist は、npm CLI のコア依存関係でnode_modules のツリーを管理するために使用されます。

Leave a Reply

Your email address will not be published.