Amazon Linux 2023 : nodejs、nodejs-devel、nodejs-full-i18n (ALAS2023-2023-084)

critical Nessus プラグイン ID 173113

概要

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

説明

したがって、ALAS2023-2023-084 のアドバイザリに記載されている複数の脆弱性の影響を受けます。

- このパーサーは、コロンの前のヘッダー名の直後にスペース (SP) があるリクエストを受け入れます。このため、llhttp < v2.1.4 および < v6.0.6 での HTTP リクエストスマグリング (HRS) が引き起こされる可能性があります。(CVE-2021-22959)

- llhttp < 2.1.4および < 6.0.6の解析関数は、チャンクされたリクエストの本文を解析するときに、チャンク拡張を無視します。このため、特定の状況で HTTP リクエストスマグリング (HRS) が発生します。(CVE-2021-22960)

- ** 異論あり ** package-lock.json の依存関係情報が package.json と異なる場合でも、npm 7.xおよび 8.xから 8.1.3の npm ci コマンドはインストールを続行します。この動作はドキュメントと一致しておらず、package-lock.json の正確なバージョン一致要件によってブロックされているはずのマルウェアを攻撃者がインストールしやすくします。注意: npm チームは、これは脆弱性ではないと考えています。これには、だれかが package-lock.json とは異なる依存関係を持つ package.json をソーシャルエンジニアリングする必要があります。そのユーザーは、依存関係を変更するためにファイルシステムまたは書き込みアクセス権を持っている必要があります。npm チームによると、悪意のある攻撃者によるソーシャルエンジニアリングやファイルシステムへのアクセスを阻止することは、npm CLI の範囲外です。(CVE-2021-43616)

- 任意のサブジェクト代替名 (SAN) タイプを受け入れると、PKI が特定の SAN タイプを使用するように明確に定義されていない限り、名前に制約のある中間体がバイパスされる可能性があります。Node.js < 12.22.9, < 14.18.3, < 16.13.2, および < 17.3.1は、URI SAN タイプを受け入れていました。これは、多くの場合、PKI が使用するように定義されていません。
さらに、プロトコルが URI SAN を許可している場合、Node.js は URI を正しく一致させませんでした。これを修正した Node.js のバージョンは、ホスト名に対して証明書をチェックするときに URI SAN タイプを無効にします。この動作は、--security-revertコマンドラインオプションで元に戻すことができます。(CVE-2021-44531)

- Node.js < 12.22.9, < 14.18.3, < 16.13.2, および < 17.3.1は、SAN (Subject Alternative Names) を文字列形式に変換します。この文字列を使用して、接続を検証する際にホスト名に対してピア証明書をチェックします。証明書チェーン内で名前の制約が使用されると、文字列形式が注入の脆弱性の影響を受け、これらの名前の制約がバイパスされる可能性があります。これを修正した Node.js のバージョンは、インジェクションを防ぐために、問題がある文字を含む SAN をエスケープします。この動作は、--security-revertコマンドラインオプションで元に戻すことができます。(CVE-2021-44532)

- Node.js < 12.22.9, < 14.18.3, < 16.13.2, および < 17.3.1が複数値の相対識別名を適切に処理しませんでした。攻撃者は、たとえば、証明書サブジェクトの検証をバイパスできる Common Name を注入するために、複数値の Relative Distinguished Name として解釈される単一値の Relative Distinguished Name を含む証明書サブジェクトを作成する可能性があります。影響を受けるバージョンの Node.js は複数値の Relative Distinguished Name を受け入れないため、そのような攻撃自体に対して脆弱ではありません。ただし、証明書サブジェクトのノードの曖昧な表現を使用するサードパーティコードは、脆弱である可能性があります。(CVE-2021-44533)

- console.table() 関数のフォーマットロジックにより、ユーザー制御の入力をプロパティパラメーターに渡すことはできませんが、最初のパラメーターとして少なくとも 1 つのプロパティを持つプレーンオブジェクトを渡すことは安全ではありません。これは __proto__ である可能性があります。プロトタイプ汚染は、オブジェクトプロトタイプの数値キーに割り当てられる空の文字列のみを許可するという点で、コントロールが非常に制限されています。Node.js >= 12.22.9、>= 14.18.3、>= 16.13.2、および >= 17.3.1はこれらのプロパティが割り当てられている null プロトタイプを使用しています。(CVE-2022-21824)

- Node.js バージョン <14.20.0、<16.20.0、<18.5.0 に OS コマンドインジェクションの脆弱性が存在します。これは、IsIPAddress が DBS リクエストを行う前に IP アドレスが無効かどうかを適切にチェックしないため、容易にバイパスできる IsAllowedHost チェックが不十分なためです。これにより、再バインド攻撃が可能になります。(CVE-2022-32212)

- Node.js の http モジュールの llhttp パーサー <v14.20.1、<v16.17.1、および <v18.9.1 が Transfer-Encoding ヘッダーを正しく解析および検証せず、HTTP Request Smuggling (HRS) につながる可能性があります。(CVE-2022-32213)

- Node.js の http モジュールの <v14.20.1、<v16.17.1 および <v18.9.1 パーサーは、HTTP リクエストの区切りに CRLF シーケンスを厳密には使用しません。これにより、HTTP リクエストスマグリングが引き起こされる可能性があります (HRS)。
(CVE-2022-32214)

- Node.js の http モジュールの llhttp パーサー <v14.20.1、<v16.17.1 および <v18.9.1 が、複数行の Transfer-Encoding ヘッダーを適切に処理しません。これにより、HTTP リクエストスマグリングが引き起こされる可能性があります (HRS)。
(CVE-2022-32215)

- 18.40.0より前の 18.xバージョンの Linux の Node.js に暗号化の脆弱性が存在します。これにより、openssl.cnf のデフォルトパスが、OpenSSL 3 にアップグレードする前のバージョンの場合のように、特定の状況下では /etc/ssl ではなく、管理者以外のユーザーにアクセスされる可能性があります。(CVE-2022-32222)

- Node.js は Hijack Execution Flow に対して脆弱です。Windows プラットフォームの特定の条件下での DLL ハイジャック。もし被害者が Windows マシンで以下の依存関係にある場合、この脆弱性は悪用される可能性があります。* OpenSSL がインストールされ、C: \Program Files\Common Files\SSL\openssl.cnf が存在します。上記の条件が存在する場合、「node.exe」は現在のユーザーディレクトリで「providers.dll」を検索します。その後、「node.exe」は攻撃者が悪意のあるファイル「providers.dll」をさまざまなパスに配置し、この脆弱性を悪用する可能性があります。(CVE-2022-32223)

- SecretKeyGenTraits の EntropySource() の変更により Node.js 18 に弱いランダム性の WebCrypto keygen 脆弱性が存在します: : DoKeyGen() の EntropySource() を変更することにより、弱いランダム性が生じる脆弱性が存在します。これには 2 つの問題があります。1) 戻り値をチェックしません。EntropySource() が常に成功することを前提としていますが、失敗する可能性があります (時には失敗します)。2) EntropySource() が返すランダムデータは、暗号学的に強力でない可能性があるため、鍵素材として適切ではありません。(CVE-2022-35255)

- Node v18.7.0 の http モジュールの llhttp パーサーが、CLRF で終了しないヘッダーフィールドを正しく処理しません。これにより、HTTP リクエストスマグリングが発生する可能性があります。(CVE-2022-35256)

- X.509 証明書の検証、特に名前の制約のチェックで、バッファオーバーランが発生する可能性があります。これは証明書チェーン署名の検証後に発生し、信頼できる発行者へのパスを構築できないにもかかわらず、CA が悪意のある証明書に署名するか、アプリケーションが証明書の検証を続行する必要があることに注意してください。攻撃者は、悪意のあるメールアドレスを細工して、攻撃者が制御する 4 バイトをスタックでオーバーフローさせる可能性があります。このバッファオーバーフローにより、クラッシュが発生したり (サービス拒否が引き起こされます)、リモートコード実行が発生したりする可能性があります。多くのプラットフォームは、リモートコード実行のリスクを軽減するスタックオーバーフロー保護を実装しています。任意のプラットフォーム / コンパイラのスタックレイアウトに基づいて、リスクがさらに緩和される可能性があります。CVE-2022-3602 のプレアナウンスでは、この問題を「重要度最高」と説明しています。上記の緩和要因のいくつかに基づくさらなる分析により、これは「重要度高」にダウングレードされています。ユーザーには、依然として新しいバージョンへ至急アップグレードすることが推奨されています。TLS クライアントでは、悪意のあるサーバーに接続することでこれが発生する可能性があります。
TLS サーバーでは、サーバーがクライアント認証をリクエストし、悪意のあるクライアントが接続すると、これが発生する可能性があります。OpenSSL 3.0.7で修正されました (3.0.0、3.0.1、3.0.2、3.0.3、3.0.4、3.0.5、3.0.6 が影響を受けました)。(CVE-2022-3602)

- X.509 証明書の検証、特に名前の制約のチェックで、バッファオーバーランが発生する可能性があります。これは証明書チェーン署名の検証後に発生し、信頼できる発行者へのパスを構築できないにもかかわらず、CA が悪意のある証明書に署名するか、アプリケーションが証明書の検証を続行する必要があることに注意してください。攻撃者は、証明書の悪意のあるメールアドレスを細工し、スタック上の「。」文字 (10 進数の 46) を含む任意のバイト数をオーバーフローさせる可能性があります。このバッファオーバーフローにより、クラッシュが発生する可能性があります (サービス拒否が引き起こされます)。TLS クライアントでは、悪意のあるサーバーに接続することでこれが発生する可能性があります。TLS サーバーでは、サーバーがクライアント認証をリクエストし、悪意のあるクライアントが接続すると、これが発生する可能性があります。(CVE-2022-3786)

- Node.js バージョン <14.21.1、<16.18.1、<18.12.1、< 19.0.1に OS コマンドインジェクションの脆弱性が存在します。これは、IsIPAddress が DBS リクエストを行う前に IP アドレスが無効かどうかを適切にチェックしないため、容易にバイパスできる IsAllowedHost チェックが不十分なためです。これにより、再バインド攻撃が可能になります。https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32212 でのこの問題の修正は不完全であり、この新しい CVE は修正を完了するためのものです。(CVE-2022-43548)

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

ソリューション

「dnf update nodejs --releasever=2023.0.20230222」を実行してシステムを更新してください。

参考資料

https://alas.aws.amazon.com/AL2023/ALAS-2023-084.html

https://alas.aws.amazon.com/cve/html/CVE-2021-22959.html

https://alas.aws.amazon.com/cve/html/CVE-2021-22960.html

https://alas.aws.amazon.com/cve/html/CVE-2021-43616.html

https://alas.aws.amazon.com/cve/html/CVE-2021-44531.html

https://alas.aws.amazon.com/cve/html/CVE-2021-44532.html

https://alas.aws.amazon.com/cve/html/CVE-2021-44533.html

https://alas.aws.amazon.com/cve/html/CVE-2022-21824.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32212.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32213.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32214.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32215.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32222.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32223.html

https://alas.aws.amazon.com/cve/html/CVE-2022-35255.html

https://alas.aws.amazon.com/cve/html/CVE-2022-35256.html

https://alas.aws.amazon.com/cve/html/CVE-2022-3602.html

https://alas.aws.amazon.com/cve/html/CVE-2022-3786.html

https://alas.aws.amazon.com/cve/html/CVE-2022-43548.html

https://alas.aws.amazon.com/faqs.html

プラグインの詳細

深刻度: Critical

ID: 173113

ファイル名: al2023_ALAS2023-2023-084.nasl

バージョン: 1.2

タイプ: local

エージェント: unix

公開日: 2023/3/21

更新日: 2023/4/21

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: High

基本値: 7.5

現状値: 6.2

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

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

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 9.1

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

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

脆弱性情報

CPE: p-cpe:/a:amazon:linux:nodejs, p-cpe:/a:amazon:linux:nodejs-debuginfo, p-cpe:/a:amazon:linux:nodejs-debugsource, p-cpe:/a:amazon:linux:nodejs-devel, p-cpe:/a:amazon:linux:nodejs-docs, p-cpe:/a:amazon:linux:nodejs-full-i18n, p-cpe:/a:amazon:linux:nodejs-libs, p-cpe:/a:amazon:linux:nodejs-libs-debuginfo, p-cpe:/a:amazon:linux:npm, p-cpe:/a:amazon:linux:v8-devel, cpe:/o:amazon:linux:2023

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

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2023/2/17

脆弱性公開日: 2021/10/12

参照情報

CVE: CVE-2021-22959, CVE-2021-22960, CVE-2021-43616, CVE-2021-44531, CVE-2021-44532, CVE-2021-44533, CVE-2022-21824, CVE-2022-32212, CVE-2022-32213, CVE-2022-32214, CVE-2022-32215, CVE-2022-32222, CVE-2022-32223, CVE-2022-35255, CVE-2022-35256, CVE-2022-3602, CVE-2022-3786, CVE-2022-43548