简介
远程 Amazon Linux 2023 主机缺少安全更新。
描述
因此,该软件受到 ALAS2023-2026-3330 公告中提及的多个漏洞影响。
HTTP 代理处理Node.js漏洞允许保持活动的套接字处理在发送相应请求之前写入的响应。这可能导致错误的响应关联,并可能导致 HTTP 响应混淆或意外数据泄露。(CVE-2026-105481)
Node.js 中的漏洞允许“dns.resolve”函数错误处理包含空字节的域名,从而可能造成域名截断和主机名验证不一致。这可允许依赖主机名验证的应用程序处理非预期域名。该问题影响 Node.js 22.x、 24.x和 26.x 版本行。升级到修补版本以解决漏洞。
(CVE-2026-105482)
Node.js TLS 证书主机名验证中的漏洞允许松散解析为 IP 地址的主机名绕过主机名验证。这可使攻击者冒充受信任的端点,并可能促进中间人攻击。(CVE-2026-106069)
Node.js TLS 证书验证中的漏洞允许将非规范 IPv4 主机名与证书中的 DNS 主题备用名称 (SAN) 条目错误匹配。这可能允许针对 DNS 名称颁发的证书认证 IP 端点,从而绕过预期主机名验证。(CVE-2026-106072)
Node.js 中的漏洞造成“crypto.randomUUID()”和“crypto.randomInt()”使用的熵缓存在用户空间启动快照和单一可执行应用程序 (SEA) 中得以保留。因此,从同一快照初始化的多个进程可能会生成重复值,从而削弱随机性并可能危及依赖唯一或不可预测值的安全机制。(CVE-2026-106073)
Node.js 权限模型中的漏洞允许通过“fs.realpathSync()”绕过文件系统访问限制。这可让应用程序访问应受到已配置权限策略限制的文件系统路径。(CVE-2026-106074)
undici 是用于 Node.js 的 HTTP 客户端库。在 到 6.29.0到 7.0.07.30.0的8.0.08.12.1版本4.0.0中,其代理调度程序在将构造函数选项转发到每个各源池之前,通过基于 JSON 的深层克隆传递其构造函数选项,并且由于 JSON 无法表示函数,因此包含 checkServerIdentity 回调的调用程序提供的 tls 选项在到达 TLS 层之前会静默终止。因此,静默接受其自定义 checkServerIdentity 写入要拒绝的证书,但却通过 Node 的默认主机名和链检查的 TLS 对等机。由于 Agent 是 request、fetch 和 setGlobalDispatcher 背后的默认调度程序,这会影响大多数应用程序使用的路径,并且 EnvHttpProxyAgent 也在其直接和非代理路由上受到影响,而只有传递函数值 tls 选项(例如用于证书或公钥固定的自定义 checkServerIdentity)的应用程序面临风险。undici 6.29.1、 7.30.1和 8.12.2中已修复此问题,其在 JSON 克隆外部保留了 tls 选项,因此自定义验证回调会原样转发,用户应升级到其中一个版本或更高版本。变通方案是通过连接而非 TLS 传递 TLS 选项,或对于代理目的地使用 requestTls 和 proxyTls。(CVE-2026-109383)
undici 是用于 Node.js 的 HTTP 客户端库。在 7.0.0 版本中 7.30.08.0.08.12.1,当无源代理使用共享缓存存储按该顺序组合重定向和缓存拦截器时,缓存会在重定向处理程序更改源之前从原始请求 URL 构建其密钥,因此跨源重定向后产生的响应存储在原始密钥下。控制来自受信任 URL 的重定向目标的攻击者可将其响应缓存在受信任的 URL 下并提供给之后的调用者,从而导致持久性缓存中毒,而同一密钥混淆会将对用户特定资源的私密非存储重定向响应存储在原始 URL 下,并提供给之后未经认证的调用程序, 泄露私人数据。仅当使用了无源代理、共享缓存存储以及重定向然后缓存组合时,应用程序才受到影响。undici 7.30.1 和 8.12.2中已修复此问题,其验证生产源在存储前仍匹配缓存密钥并保留每个重定向跃点的缓存控制策略,用户应升级到其中一个版本或更高版本。变通方案是,在重定向拦截器之前构建缓存拦截器、使用各源调度程序和缓存存储,或针对可重定向的请求禁用共享缓存。
(CVE-2026-109829)
undici 是用于 Node.js 的 HTTP 客户端库。在一直到7.30.08.0.0版本8.12.1中7.15.0,其 fetch() 实现通过将算法标记与仅小写的集合进行匹配来验证子资源完整性元数据,即使 SRI 规范通过其 ASCII 小写形式定义标记,因此有效但非小写的标记(例如大写或混合大小写SHA256)将被视为未知并跳过。当没有任何被识别的算法时,undici 会将完整性列表视为空并接受响应,如此一来,返回与固定摘要不匹配的正文的服务器便可通过检查。因此,仅控制响应正文的攻击者可将攻击者控制的字节传递至固定了有效大写或混合大小写 SRI 标记的应用程序,不会出现不存在完整性错误,只会影响响应完整性。undici 7.30.1 和 8.12.2中已修复此问题,其在验证前将算法标记规范化为 ASCII 小写,用户应升级到这些版本中的其中一个或更高版本。作为变通方案,可在完整性元数据中使用小写算法标记,例如 sha256、sha384 或 sha512。(CVE-2026-109841)
undici 是用于 Node.js 的 HTTP 客户端库。在 到 6.29.0到 7.18.07.30.0的8.0.08.12.1版本6.23.0中,当恶意服务器返回包含五个以上内容编码的响应时,其 fetch() 实现会使Node.js进程崩溃,并在发送正文之前关闭连接。
由于内容编码限制,Undici 拒绝此类响应,但它在该检查前创建了内部响应流并在未附加错误监听器或中止请求的情况下返回,因此过早关闭会在孤立流上显示内容长度不匹配,Node.js将其视为未处理的错误并终止进程。即使应用程序正确地捕获到 fetch() 拒绝,未经认证的远程服务器也可通过单一响应触发此漏洞,从而导致拒绝服务。undici 6.29.1、 7.30.1和 8.12.2中已修复此问题,用户应升级到这些版本中的其中一个或更高版本。目前尚无变通方案。(CVE-2026-109869)
undici 是用于 Node.js 的 HTTP 客户端库。在 到 6.29.0到 7.0.07.30.0到 8.0.08.12.1的版本6.5.0中,其 EventSource 客户端可遭恶意或遭到破坏的 Server-Sent Events 对等机的驱动,耗尽进程内存。通过发送数百万个没有空白事件分隔符的微小已完成数据字段,或者将单个未完成行拆分为许多区块,解析器会保留越来越多的每个字段和每个区块状态,即基于字节的 maxEventSize 和 maxResponseSize 限制未限制这些状态,并且由于在解压缩之前在压缩正文上强制执行 maxResponseSize,因此小型压缩响应可以扩展到足够的保留内存来终止进程。应用程序只需要维护与不受信任的对等方的 EventSource 连接,该对等方仅控制响应,而可用性是唯一的影响。undici 6.29.1、 7.30.1和 8.12.2中已修复此问题,其独立于字节限制限制限制保留的解析器状态,用户应升级到其中一个版本或更高版本。目前尚无变通方案。(CVE-2026-109924)
undici 是用于 Node.js 的 HTTP 客户端库。在 到 6.29.0到 8.12.18.0.07.30.07.0.0 的版本5.15.0中,其 WebSocket 客户端(包括 Node.js 暴露的捆绑的 WebSocket)可被恶意或遭到破坏的 WebSocket 服务器驱动耗尽进程内存。对于接收到的每个 PING 帧,客户端会自动写入 PONG 响应并忽略来自套接字写入的背压信号,因此,在从不读取客户端 PONG 的情况式传输小 PING 帧的服务器会使出站写入队列和堆无限增长,直到 Node.js 进程耗尽内存并终止。该攻击是远程且未经身份验证的,只需要正常的 WebSocket 连接,并且是非对称的,因为小的入站 PING 会产生更大的保留出站队列,可用性是唯一的影响。undici 6.29.1、 7.30.1和 8.12.2中已修复此问题,其会在自动 PONG 响应达到套接字背压时暂停 WebSocket 帧解析,并在耗尽时恢复,从而限制出站队列,用户应升级至其中一个版本或更高版本。目前尚无变通方案。
(CVE-2026-109932)
Node.js Brotli 解码器中的漏洞可在处理构建的 Brotli 输入时导致越界内存写入。成功利用可导致内存损坏和远程代码执行。
(CVE-2026-111497)
undici 是用于 Node.js 的 HTTP 客户端库。在 到 6.29.0到 8.0.08.12.17.0.07.30.0的版本4.2.1中,当 TLS 1.2 服务器在建立连接后重新协商并提供主机名与请求的主机不匹配的、经 CA 信任的不同证书时,客户端进程会崩溃。Node.js对重新协商的握手重新运行主机名验证并破坏包含 certificate-altname 错误的套接字,但 Undici 的 established-socket 错误处理程序断言此错误代码永远不会发生,因此对等控制的错误变成了终止 Node.js 进程的未捕获断言,从而影响 HTTP/1.1 和 HTTP/2 路径。通过 undici 或全局 fetch() 到达的恶意或遭到破坏的 HTTPS 端点可以通过单个服务器发起的重新协商造成客户端崩溃,从而中断进程中的所有正在传输的请求和后台工作,并且由于攻击者控制端点并可以提供两个普通有效证书,因此利用无需 CA 妥协。仅 TLS 1.2 受到影响,因为 TLS 1.3 不支持重新协商。undici 6.29.1、 7.30.1和 8.12.2中已修复此问题,用户应升级到这些版本中的其中一个或更高版本。变通方案是限制到 TLS 1.3 的出站连接,以便在目标端点支持重新协商时无法进行重新协商。(CVE-2026-87018)
undici 是用于 Node.js 的 HTTP 客户端库。在版本和7.30.08.0.0版本中7.15.08.12.1,其解压缩拦截器将解压缩的响应数据从 zlib 流事件回调转发到下游处理程序,而不捕获这些回调可能抛出的异常,尽管 undici 的引擎将来自下游处理程序的同步抛出转换为按请求失败,但当从 zlib 回调异步发生抛出时,该保护不存在。因此,按设计抛出的下游处理程序(如在响应超过其配置的最大大小时抛出的内置转储拦截器)会作为终止Node.js进程的未捕获异常转义。恶意或遭到破坏的 HTTP 服务器可返回一个小的压缩正文,该主体会解压缩到超过配置的限制,进而造成任何使用此类处理程序组成解压缩拦截器的客户端崩溃,因此只有解压缩的大小很重要,而线路上的字节仍然很小。undici 7.30.1 和 8.12.2中已修复此问题,用户应升级到这些版本中的其中一个或更高版本。作为变通方案,在升级之前,避免使用在响应处理期间抛出的响应处理程序来构建解压缩拦截器。
(CVE-2026-87029)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行“dnf update nodejs24 --releasever 2023.12.20261026”或“dnf update --advisory ALAS2023-2026-3330 --releasever 2023.12.20261026”以更新系统。
插件详情
文件名: al2023_ALAS2023-2026-3330.nasl
代理: unix
支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus
风险信息
矢量: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:N
矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
时间矢量: CVSS:3.0/E:P/RL:O/RC:C
Threat Vector: CVSS:4.0/E:P
Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
漏洞信息
CPE: cpe:/o:amazon:linux:2023, p-cpe:/a:amazon:linux:nodejs24-debuginfo, p-cpe:/a:amazon:linux:nodejs24-debugsource, p-cpe:/a:amazon:linux:nodejs24-devel, p-cpe:/a:amazon:linux:nodejs24-docs, p-cpe:/a:amazon:linux:nodejs24-full-i18n, p-cpe:/a:amazon:linux:nodejs24-libs-debuginfo, p-cpe:/a:amazon:linux:nodejs24-libs, p-cpe:/a:amazon:linux:nodejs24-npm, p-cpe:/a:amazon:linux:nodejs24, p-cpe:/a:amazon:linux:v8-13.6-devel
必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
易利用性: Exploits are available
参考资料信息
CVE: CVE-2026-105481, CVE-2026-105482, CVE-2026-106069, CVE-2026-106072, CVE-2026-106073, CVE-2026-106074, CVE-2026-109383, CVE-2026-109829, CVE-2026-109841, CVE-2026-109869, CVE-2026-109924, CVE-2026-109932, CVE-2026-111497, CVE-2026-87018, CVE-2026-87029