02/25/2022にNode.jsの複数の脆弱性(High: CVE-2023-23918, Medium: CVE-2023-23919, CVE-2023-23936, Low: CVE-2023-23920, CVE-2023-24807)が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。
[過去関連リンク(最新5件)]
CVSS/プライオリティ
- CVE-2023-23918
- 影響するバージョン
- 全ての19.x, 18.x, 16.x, 14.x
- 一時情報源
- Priority
- Vendor: High
- CVSS Score / CVSS Vector
- N/A
- 影響するバージョン
- CVE-2023-23919
- 影響するバージョン
- 19.x < 19.2.0と、全ての18.x, 16.x
- 一時情報源
- Priority
- Vendor: Medium
- CVSS Score / CVSS Vector
- N/A
- 影響するバージョン
- CVE-2023-23936
- 影響するバージョン
- 全ての19.x, 18.x, 16.x
- 一時情報源
- Priority
- Vendor: Medium
- CVSS Score / CVSS Vector
- N/A
- 影響するバージョン
- CVE-2023-23920
- 影響するバージョン
- 全ての19.x, 18.x, 16.x, 14.x
- 一時情報源
- Priority
- Vendor: Low
- CVSS Score / CVSS Vector
- N/A
- 影響するバージョン
- CVE-2023-24807
- 影響するバージョン
- 全ての19.x, 18.x, 16.x
- 一時情報源
- Priority
- Vendor: Low
- CVSS Score / CVSS Vector
- N/A
- 影響するバージョン
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-23918
- process.mainModuleによるNode.jsパーミッションの迂回
- process.mainModule.require()を用いてNode.jsのパーミッションを迂回し認証されていないモジュールにアクセスすることが可能という問題が見つかりました。これは–experimental-policyオプションを有効にしている際に発生します。
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-23919
- nodejs cryptoライブラリ中のOpenSSLエラーハンドリングの問題によるDoSの可能性
- いくつかのケースでは、Node.jsは操作がセットされた後にOpenSSLエラースタックをクリアしていませんでした。これにより同じスレッド上で暗号操作を連続して行う際にFalse Positiveエラーが発生する可能性があります。この結果、DoSが発生する可能性があります。
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-23936
- Fetch APIでホストヘッダ中のCRLFインジェクションに対する保護の欠落
- Node.jsのfetch APIでは’host’ヘッダ中のCRLFインジェクションに対して保護を行っておらず、これによりHTTPヘッダーインジェクション攻撃の影響を受ける可能性があります。
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-23920
- ICU_DATA環境変数を通じたICUデータの安全でない読み込み
- Node.jsでは実行され権限を昇格させる際にICUデータを検索して環境変数から読み込む可能性があります。ICU_NO_USER_DATA_OVERRIDEを変更することでこれを防ぐことが出来ます。
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-24807
- Fetch APIでヘッダ中の正規表現によるDoS(ReDoS)
- Node.jsのfetch API中でHeaders.set()とHeaders.append()メソッドが正規表現DoS(ReDoS)の脆弱性を持っていました。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
- Red Hat Enterprise Linux/CentOS
- Ubuntu
- SUSE/openSUSE
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。