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 运行环境受到多个漏洞的影响。

描述

远程主机上安装的 Node.js 版本低于 18.19.1、20.11.1、21.6.2。因此,其会受到 2024 年 2 月 14 日星期三安全版本公告中提及的多个漏洞影响。

- 在 Linux 上,当进程以提升的权限运行时,如果非特权用户可能已设置了某些环境变量,Node.js 就会忽略这些变量,而 CAP_NET_BIND_SERVICE 是唯一的例外。由于此异常实现中存在一个缺陷,即使设置了某些其他功能,Node.js 也会错误应用此异常。这允许非特权用户注入继承了进程提升的权限的代码。影响:感谢 Tobias Nieen 报告并修复此漏洞。(CVE-2024-21892)

- Node.js HTTP 服务器中存在一个漏洞,攻击者可利用此漏洞,发送特别构建、具有分块编码的 HTTP 请求,从而导致资源耗尽和拒绝服务 (DoS)。服务器会从单个连接读取无限数量的字节,利用区块扩展字节限制的缺陷。此问题可造成 CPU 和网络带宽耗尽,进而绕过超时和正文大小限制等标准防护措施。影响:感谢 Bartek Nowotarski 报告此漏洞,同时感谢 Paolo Insogna 修复此漏洞。(CVE-2024-22019)

- 权限模型通过对用户提供的任何路径调用 path.resolve() 来防范路径遍历攻击。如果要将路径视为 Buffer,则该实现会使用 Buffer.from() 从 path.resolve() 的结果中获取 Buffer。通过 monkey-patching Buffer 内部构件,即 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 填充错误处理期间隐蔽时序边信道。该漏洞揭示了对有效和无效密文进行解密时的重大时间性差异。这会造成严重威胁,因为攻击者可远程利用此漏洞来解密捕获的 RSA 密文或伪造签名,特别是在涉及 API 端点处理 Json Web Encryption 消息的情况下。影响:感谢 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