Oracle Linux 8 : nodejs:20 (ELSA-2024-1687)

high Nessus プラグイン ID 193028

概要

リモートの Oracle Linux ホストに、1 つ以上のセキュリティ更新プログラムがありません。

説明

リモートの Oracle Linux 8 ホストに、ELSA-2024-1687 アドバイザリに記載されている複数の脆弱性の影響を受けるパッケージがインストールされています。

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

- setuid() は、setuid() を呼び出す前に初期化されている場合には、libuv の内部 io_uring 操作に影響を与えません。
これにより、プロセスは、setuid() の呼び出しによって権限がドロップされた可能性があるにもかかわらず、権限の必要な操作を実行できます。この脆弱性は、Node.js 18.18.0、Node.js 20.4.0、および Node.js 21 以降のバージョンを使用しているすべてのユーザーに影響します。(CVE-2024-22017)

- Node.js アクセス許可モデルは、ワイルドカードをファイルパスの最後の文字としてのみ使用する必要があることをドキュメント内で明確にしていません。例: ``` --allow-fs-read=/home/node/.ssh/*.pub ``` は「pub」を無視し、「.ssh/」より後のすべてへのアクセスを許可します。この誤解を招く文書は、Node.js 20 および Node.js 21 で実験的なアクセス許可モデルを使用しているすべてのユーザーに影響を与えます。注意: この CVE が発行された時点では、このアクセス許可は Node.js の実験的な機能です。(CVE-2024-21890)

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

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

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

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

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

ソリューション

影響を受けるパッケージを更新してください。

参考資料

https://linux.oracle.com/errata/ELSA-2024-1687.html

プラグインの詳細

深刻度: High

ID: 193028

ファイル名: oraclelinux_ELSA-2024-1687.nasl

バージョン: 1.0

タイプ: local

エージェント: unix

公開日: 2024/4/8

更新日: 2024/4/8

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

リスク情報

VPR

リスクファクター: Critical

スコア: 9.0

CVSS v2

リスクファクター: High

基本値: 8.5

現状値: 6.3

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

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

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:oracle:linux:8::appstream, cpe:/o:oracle:linux:8, p-cpe:/a:oracle:linux:nodejs, p-cpe:/a:oracle:linux:nodejs-devel, p-cpe:/a:oracle:linux:nodejs-docs, p-cpe:/a:oracle:linux:nodejs-full-i18n, p-cpe:/a:oracle:linux:nodejs-nodemon, p-cpe:/a:oracle:linux:nodejs-packaging, p-cpe:/a:oracle:linux:nodejs-packaging-bundler, p-cpe:/a:oracle:linux:npm

必要な KB アイテム: Host/OracleLinux, Host/RedHat/release, Host/RedHat/rpm-list, Host/local_checks_enabled

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

パッチ公開日: 2024/4/8

脆弱性公開日: 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