Debian DSA-5008-1 : node-tar - セキュリティ更新

high Nessus プラグイン ID 155314

概要

リモートの Debian ホストに 1 つまたは複数のセキュリティ関連の更新プログラムがありません。

説明

リモートのDebian 10 / 11 ホストには、dsa-5008 のアドバイザリに記載された複数の脆弱性の影響を受けるパッケージがインストールされています。

- バージョン 4.4.16、5.0.8、および 6.1.7より前の npm パッケージ tar (別名 node-tar ) には、任意ファイル作成 / 上書きおよび任意コード実行の脆弱性があります。node-tar は、シンボリックリンクによって場所が変更されるファイルが抽出されないことを保証することを目的としています。これは、抽出されたディレクトリがシンボリックリンクではないことを確認することで、一部は達成されます。さらに、特定のパスがディレクトリであるかどうかを判断するための不要な stat 呼び出しを防ぐために、ディレクトリが作成されるときにパスがキャッシュされます。
ディレクトリとディレクトリと同じ名前のシンボリックリンクの両方を含む tar ファイルを抽出する際に、このロジックは不十分でした。アーカイブエントリのシンボリックリンクとディレクトリ名は、posix システムのパスセパレーターとしてバックスラッシュを使用していました。キャッシュチェックロジックは、パスセパレーターとして「\」と「/」の両方の文字を使用していましたが、「\」は posix システムで有効なファイル名文字です。最初にディレクトリを作成し、次にそのディレクトリをシンボリックリンクに置き換えることで、ディレクトリの node-tar シンボリックリンクチェックをバイパスし、信頼できない tar ファイルを任意の場所にシンボリックリンクさせ、その後そこに任意のファイルを抽出することが可能になりました。任意のファイルの作成および上書きを可能にします。さらに、大文字と小文字を区別しないファイルシステムでも同様の混乱が生じる可能性があります。tar アーカイブが「FOO」にディレクトリを含み、「foo」という名前のシンボリックリンクが続いている場合、大文字と小文字を区別しないファイルシステムでは、シンボリックリンクを作成するとディレクトリがファイルシステムから削除されますが、内部ディレクトリからは削除されません。キャッシュヒットとして扱われないためです。「FOO」ディレクトリ内の後続のファイルエントリは、ディレクトリがすでに作成されていると考えて、シンボリックリンクのターゲットに配置されます。これらの問題は、リリース 4.4.16、5.0.8 および 6.1.7で対処されています。node-tar の v3 ブランチは廃止され、これらの問題に対するパッチを受けませんでした。まだ v3 リリースを使用している場合は、より新しいバージョンの node-tar に更新することをお勧めします。
これが不可能な場合は、GHSA-9r2w-394v-53qc に記載されている回避策を利用できます。(CVE-2021-37701)

- バージョン 4.4.18、5.0.10、および 6.1.9より前の npm パッケージ tar (別名 node-tar ) には、任意ファイル作成/上書きおよび任意コード実行の脆弱性があります。node-tar は、シンボリックリンクによって場所が変更されるファイルが抽出されないことを保証することを目的としています。これは、抽出されたディレクトリがシンボリックリンクではないことを確認することで、一部は達成されます。さらに、特定のパスがディレクトリであるかどうかを判断するための不要な stat 呼び出しを防ぐために、ディレクトリが作成されるときにパスがキャッシュされます。
ディレクトリと同じ値に正規化されたユニコードを含む名前のシンボリックリンクの両方を含む tar ファイルを抽出する際に、このロジックは不十分でした。さらに、Windows システムでは、長いパスの部分が、8.3 の短いパスの部分と同じファイルシステムエンティティに分解されます。したがって、特別に細工された tar アーカイブには、パスの 1 つの形式のディレクトリが含まれ、その後に同じファイルシステムエンティティに分解される異なる文字列のシンボリックリンクが続き、その後に最初の形式を使用するファイルが含まれる可能性があります。最初にディレクトリを作成し、次にそのディレクトリをファイルシステムで同じエントリに分解された明らかに異なる名前を持つシンボリックリンクに置き換えることで、ディレクトリの node-tar シンボリックリンクチェックをバイパスし、信頼できない tar ファイルを任意の場所にシンボリックリンクさせ、その後そこに任意のファイルを抽出し、任意のファイルの作成および上書きが可能でした。これらの問題は、リリース 4.4.18、5.0.10 および 6.1.9で対処されています。
node-tar の v3 ブランチは廃止され、これらの問題に対するパッチを受けませんでした。まだ v3 リリースを使用している場合は、より新しいバージョンの node-tar に更新することをお勧めします。これが不可能な場合は、GHSA-qq89-hq3f-393p に記載されている回避策を利用できます。(CVE-2021-37712)

Nessus はこの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ頼っていることに注意してください。

ソリューション

node-tar パッケージをアップグレードしてください。

安定版 (stable) ディストリビューション (bullseye) では、これらの問題はバージョン 6.0.5+ds1+~cs11.3.9-1+deb11u2 で修正されています。

参考資料

https://security-tracker.debian.org/tracker/source-package/node-tar

https://www.debian.org/security/2021/dsa-5008

https://security-tracker.debian.org/tracker/CVE-2021-37701

https://security-tracker.debian.org/tracker/CVE-2021-37712

https://packages.debian.org/source/bullseye/node-tar

プラグインの詳細

深刻度: High

ID: 155314

ファイル名: debian_DSA-5008.nasl

バージョン: 1.2

タイプ: local

エージェント: unix

公開日: 2021/11/12

更新日: 2021/11/12

サポートされているセンサー: Agentless Assessment, Frictionless Assessment Agent, Nessus Agent, Nessus

リスク情報

VPR

リスクファクター: High

スコア: 7.3

CVSS v2

リスクファクター: Medium

基本値: 4.4

現状値: 3.3

ベクトル: CVSS2#AV:L/AC:M/Au:N/C:P/I:P/A:P

CVSS スコアのソース: CVE-2021-37712

CVSS v3

リスクファクター: High

基本値: 8.6

現状値: 7.5

ベクトル: CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:U/RL:O/RC:C

脆弱性情報

CPE: p-cpe:/a:debian:debian_linux:node-tar, cpe:/o:debian:debian_linux:11.0

必要な KB アイテム: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2021/11/11

脆弱性公開日: 2021/8/31

参照情報

CVE: CVE-2021-37701, CVE-2021-37712