Ubuntu 16.04 ESM / 18.04 ESM:Node.js 漏洞 (USN-4796-1)

high Nessus 插件 ID 183156

简介

远程 Ubuntu 主机缺少一个或多个安全更新。

描述

远程 Ubuntu 16.04 ESM / 18.04 ESM 主机上安装的多个程序包受到 USN-4796-1 公告中提及的多个漏洞影响。

- 0.10.47 之前的 Node.js 0.10.x、0.12.16 之前的 0.12.x、4.6.0 之前的 4.x 和 6.7.0 之前的 6.x 中 tls.checkServerIdentity 函数未正确处理 X.509 证书名称字段中的通配符,这使得中间人攻击者可以通过精心设计的证书来欺骗服务器。(CVE-2016-7099)

- 如果传入的 DNS 响应数据包是以特定方式构建,可触发用于解析 NAPTR 响应的 c-ares 函数 `ares_parse_naptr_reply()`,以读取给定输入缓冲区之外的内存。(CVE-2017-1000381)

- 在 6.14.4、 8.11.4 和 10.9.0 之前的所有 Node.js 版本中,当与 UCS-2 编码一起使用时(由 Node.js 识别为以下名称:`'ucs2'`、`'ucs-2'`、`'utf16le'` 和 `'utf-16le'`),`Buffer#write()` 可能被滥用,导致在单个 `Buffer` 的边界之外写入。写入从缓冲区倒数第二个位置开始,会导致错误计算要写入的输入字节的最大长度。(CVE-2018-12115)

- Node.js: Node.js 6.15.0 和 8.14.0 之前的所有版本:HTTP 请求拆分:如果可以诱使 Node.js 将未审查的用户提供的 Unicode 数据用于 HTTP 请求的 `path` 选项,则可以提供数据,这将触发向相同服务器发出的第二个意外、由用户定义的 HTTP 请求。(CVE-2018-12116)

- Node.js: Node.js 6.15.0 前的所有版本、8.14.0、10.14.0 和 11.3.0:Slowloris HTTP 拒绝服务:攻击者可以通过非常缓慢地发送标头来长时间保持 HTTP 或 HTTPS 连接及相关资源处于活动状态,从而导致拒绝服务 (DoS)。(CVE-2018-12122)

- Node.js: Node.js 6.15.0 前的所有版本、8.14.0、10.14.0 和 11.3.0:URL 解析器中用于 javascript 协议的主机名伪造:如果 Node.js 应用程序使用 url.parse() 来确定 URL 主机名,则可以使用大小写混合的 javascript 协议来欺骗该主机名:(例如 javAscript:,其他协议不受影响)。如果根据主机名对 URL 做出安全决策,则它们可能不正确。(CVE-2018-12123)

- Node.js 检查器 6.x 和更高版本容易遭受 DNS 重新绑定攻击,攻击者可利用此漏洞发起远程代码执行。攻击可能来自在 Web 浏览器中打开的恶意网站,而浏览器可能安装在同一台电脑上,或是安装在能够通过网络访问运行 Node.js 进程的其他电脑上。恶意网站可使用 DNS 重新绑定攻击来诱骗 Web 浏览器绕过同源策略检查,并允许实现指向 localhost 或本地网络上主机的 HTTP 连接。如果启用错误调试端口的 Node.js 进程在 localhost 或位于本地网络的主机上运行,则恶意网站可连接此进程并将其充作调试程序,并获得完整的代码执行权限。(CVE-2018-7160)

- 使用带某些参数的调用 Buffer.fill() 或 Buffer.alloc() 可能会导致挂起,从而造成拒绝服务。为了解决此漏洞,已更新 Buffer.alloc() 和 Buffer.fill() 的实现,以便它们在这些情况下的内存填充为 0 而不是挂起。Node.js 6.x (LTS Boron)、8.x (LTS Carbon) 和 9.x 的所有版本均容易受到攻击。Node.js 10.x(当前版本)的所有版本均不易受到攻击。(CVE-2018-7167)

- 在 Node.js(包括 6.17.0 之前的 6.x、8.15.1 之前的 8.x、10.15.2 之前的 10.x 和 11.10.1 之前的 11.x)中,攻击者可以通过在保持活动状态中建立 HTTP 或 HTTPS 连接并非常缓慢地发送标头来导致拒绝服务 (DoS)。这可使连接及其关联资源长时间保持活动状态。使用负载均衡器或其他代理层可缓解潜在攻击。
此漏洞是 CVE-2018-12121 的扩展,已在 11 月得到解决,此漏洞会影响所有活跃的 Node.js 发行版本,包括 6.17.0 之前的 6.x、8.15.1 之前的 8.x、10.15.2 之前的 10.x 和 11.10.1 之前的 11.x。(CVE-2019-5737)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

更新受影响的 nodejs、nodejs-dev 和/或 nodejs-legacy 程序包。

另见

https://ubuntu.com/security/notices/USN-4796-1

插件详情

严重性: High

ID: 183156

文件名: ubuntu_USN-4796-1.nasl

版本: 1.0

类型: local

代理: unix

发布时间: 2023/10/16

最近更新时间: 2023/10/16

支持的传感器: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Frictionless Assessment Azure, Nessus Agent, Nessus

风险信息

VPR

风险因素: Medium

分数: 5.9

CVSS v2

风险因素: Medium

基本分数: 6.8

时间分数: 5

矢量: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P

CVSS 分数来源: CVE-2018-7160

CVSS v3

风险因素: High

基本分数: 8.8

时间分数: 7.7

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:U/RL:O/RC:C

漏洞信息

CPE: cpe:/o:canonical:ubuntu_linux:16.04:-:esm, cpe:/o:canonical:ubuntu_linux:18.04:-:esm, p-cpe:/a:canonical:ubuntu_linux:nodejs, p-cpe:/a:canonical:ubuntu_linux:nodejs-dev, p-cpe:/a:canonical:ubuntu_linux:nodejs-legacy

必需的 KB 项: Host/cpu, Host/Ubuntu, Host/Ubuntu/release, Host/Debian/dpkg-l

易利用性: No known exploits are available

补丁发布日期: 2021/3/15

漏洞发布日期: 2016/9/13

参考资料信息

CVE: CVE-2016-7099, CVE-2017-1000381, CVE-2018-12115, CVE-2018-12116, CVE-2018-12122, CVE-2018-12123, CVE-2018-7160, CVE-2018-7167, CVE-2019-5737

USN: 4796-1