Node.js 18.x < 18.19.1 / 20.x < 20.11.1 / 21.x < 21.6.2 の複数の脆弱性 (2024 年 2 月 14 日水曜日のセキュリティリリース)。

high Nessus プラグイン ID 190856

概要

Node.js - JavaScript Runtime Environment は複数の脆弱性の影響を受けます。

説明

リモートホストにインストールされている Node.js のバージョンは、18.19.1、20.11.1、21.6.2より前のものです。したがって、2024 年 2 月 14 日水曜日のセキュリティリリースのアドバイザリに記載されている複数の脆弱性の影響を受けます。

- Linux では、プロセスが昇格された特権で実行されているときに特権のないユーザーによって設定された可能性がある特定の環境変数が、CAP_NET_BIND_SERVICE を除いて、Node.js によって無視されます。この例外の実装にバグがあるため、特定の他の機能が設定されている場合でも、Node.js がこの例外を不適切に適用します。これにより、権限のないユーザーが、プロセスの昇格した権限を継承するコードを挿入する可能性があります。影響: この脆弱性を報告し修正してくださった Tobias Nieen 氏に感謝の意を表します。(CVE-2024-21892)

- Node.js の HTTP サーバーの脆弱性により、攻撃者はチャンクエンコーディングを使用した特別に細工された HTTP リクエストを送信し、リソースの枯渇とサービス拒否 (DoS) を引き起こす可能性があります。サーバーは、チャンク拡張バイトに制限がないことを悪用して、1 つの接続から無制限にバイトを読み取ります。この問題により、タイムアウトや本文サイズ制限などの標準的な保護をバイパスして、CPU とネットワークの帯域幅を消費させる可能性があります。影響: この脆弱性を報告してくださった Bartek Nowotarski 氏と、修正してくださった Paolo Insogna 氏に感謝の意を表します。(CVE-2024-22019)

- アクセス許可モデルは、ユーザーが指定したパスで path.resolve() を呼び出すことで、パストラバーサル攻撃から自身を保護します。パスが Buffer として扱われる場合には、実装は Buffer.from() を使用して、path.resolve() の結果から Buffer を取得します。Buffer internals (Buffer.prototype.utf8Write) にモンキーパッチングを行うことで、アプリケーションが path.resolve() の結果を変更する可能性があり、これは、パストラバーサルの脆弱性につながります。影響: 注意: この CVE が発行された時点では、このアクセス許可は Node.js の実験的な機能です。この脆弱性を報告し修正してくださった Tobias Nieen 氏に感謝の意を表します。(CVE-2024-21896)

- setuid() は、setuid() を呼び出す前に初期化されている場合には、libuv の内部 io_uring 操作に影響を与えません。
これにより、プロセスは、setuid() の呼び出しによって権限がドロップされた可能性があるにもかかわらず、権限の必要な操作を実行できます。影響: この脆弱性を報告してくださった valette 氏と、修正してくださった Tobias Nieen 氏に感謝の意を表します。(CVE-2024-22017)

- crypto ライブラリの privateDecrypt() API の脆弱性により、PKCS#1 v1.5 パディングエラーの処理中に隠れたタイミングサイドチャネルが引き起こされました。この脆弱性により、有効な暗号文と無効な暗号文の復号化に、重大なタイミングの違いがあることが明らかになりました。特に API エンドポイントが Json Web Encryption メッセージを処理するシナリオでは、攻撃者がこの脆弱性をリモートで悪用して、キャプチャされた RSA 暗号文を復号したり、署名を偽造したりする可能性があるため、これは深刻な脅威となります。影響: この脆弱性を報告してくださった hkario 氏と、修正してくださった Michael Dawson 氏に感謝の意を表します。(CVE-2023-46809)

- Node.js は、node: fs 関数に提供されるパスを正規化するために複数の組み込みユーティリティ関数に依存しています。これらはユーザー定義の実装で上書きすることができ、パストラバーサル攻撃を通じてファイルシステムの権限モデルをバイパスする可能性があります。影響: 注意: この CVE が発行された時点では、このアクセス許可は Node.js の実験的な機能です。この脆弱性を報告してくれた xion 氏に、および修正してくれた Rafael Gonzaga 氏に感謝の意を表します。(CVE-2024-21891)

- Node.js アクセス許可モデルは、ワイルドカードをファイルパスの最後の文字としてのみ使用する必要があることをドキュメント内で明確にしていません。例: --allow-fs-read=/home/node/.ssh/*.pub は pub を無視し、.ssh/ より後のすべてへのアクセスを許可します。影響: 注意: この CVE が発行された時点では、このアクセス許可は Node.js の実験的な機能です。この脆弱性を報告してくれた Tobias Nieen 氏に、および修正してくれた Rafael Gonzaga 氏に感謝の意を表します。(CVE-2024-21890)

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

ソリューション

Node.js のバージョンを 18.19.1/20.11.1/21.6.2 以降にアップグレードしてください。

参考資料

http://www.nessus.org/u?313add11

プラグインの詳細

深刻度: High

ID: 190856

ファイル名: nodejs_2024_feb.nasl

バージョン: 1.2

タイプ: local

エージェント: windows, macosx, unix

ファミリー: Misc.

公開日: 2024/2/21

更新日: 2024/4/5

設定: 徹底したチェックを有効にする

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

リスク情報

VPR

リスクファクター: Critical

スコア: 9.0

CVSS v2

リスクファクター: Medium

基本値: 5

現状値: 3.7

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

CVSS スコアのソース: CVE-2024-22019

CVSS v3

リスクファクター: High

基本値: 7.9

現状値: 6.9

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

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

CVSS スコアのソース: CVE-2024-21896

脆弱性情報

CPE: cpe:/a:nodejs:node.js

必要な KB アイテム: installed_sw/Node.js

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

パッチ公開日: 2024/2/14

脆弱性公開日: 2024/2/14

参照情報

CVE: CVE-2023-46809, CVE-2024-21890, CVE-2024-21891, CVE-2024-21892, CVE-2024-21896, CVE-2024-22017, CVE-2024-22019

IAVB: 2024-B-0016-S