简介
远程 Amazon Linux 2023 主机缺少安全更新。
描述
因此,该软件受到 ALAS2023-2026-3107 公告中提及的多个漏洞影响。
Undici 的重试处理程序可使已经暴露的响应正文永久处于待定状态。当服务器返回声明 Content-Length、仅发送部分正文并关闭连接的成功响应时,重试处理程序将重试请求。如果重试返回 400 等不可重试状态,则处理程序将向下游转发该新响应并替换其内部响应流,但应用程序仍保留的原始响应正文永远不会结束或销毁。因此,读取该正文的调用永远不会稳定,并且配置的正文超时不会触发,因为其定时器绑定到连接解析器,而不是孤立的正文。攻击者控制的服务器可在不保持连接打开状态的情况下通过两个短响应触发此漏洞,并且重复的请求会累积待定的 Promise 和流,从而耗尽应用程序并发性或内存。这会影响最高和7.29.18.0.0最高到 8.10.2的 undici 版本。7.11.0 用户应升级到 undici 7.29.1 或 8.10.2.
(CVE-2026-18149)
Undici 的重试拦截器可以将范围重试响应的正文附加到已从较早部分响应传送的字节,同时仍显示原始响应的状态和标头。上游服务器传递缺少可信恢复检查点的部分正文,例如标头已发送的不成功响应或具有不可用内容范围的部分内容响应,然后关闭连接并使用更多字节回答恢复的范围请求,然后会发生这种情况。
因此,响应正文可能比应用程序观察到的 Content-Length 更长。将此类响应转发到下游 HTTP/1.1 对等机而不规范化框架的应用程序可能会发出超过转发的 Content-Length 的正文,并且多余的字节可被解释为后续响应的开头,从而实现下游响应拆分或去同步化。
要利用此漏洞,需要攻击者控制的上游服务器和通过帧敏感路径转发响应的应用程序。这会影响 之前 6.28.1的 和 7.0.07.29.1至 的 8.0.08.10.2undici 版本。用户应升级到 undici 6.28.1、 7.29.1或 8.10.2。(CVE-2026-18540)
当服务器使用客户端从未请求过的子协议进行响应时,undici 的 WebSocket 客户端会在打开握手期间使整个Node.js进程崩溃。默认 WebSocket 连接不发送任何子协议,但如果服务器的 101 响应包含 Sec-WebSocket-Protocol 标头,则 undici 会在对照请求的列表检查空值时取消引用该值并抛出未捕获的 TypeError。
由于该代码在没有周围错误处理的微任务中运行,因此异常会根据节点的默认行为传播并终止进程,而不是按照 WebSocket 协议的要求妥善地使连接失败。在未经身份验证的情况下,任何在默认配置下未经身份验证的应用程序,向攻击者控制或遭到破坏的服务器打开 WebSocket 的任何应用程序,或通过中间人的明文连接打开 WebSocket 的应用程序,都可在未经身份验证的情况下,以默认配置进行远程崩溃。这会影响最高到 6.28.1、 和 7.0.07.29.1最高到 8.10.2的 8.0.0 undici 版本6.7.0。用户应升级到 undici 6.28.1、 7.29.1或 8.10.2。(CVE-2026-19534)
undici 的解压缩拦截器根据不受信任的内容编码标头对响应正文进行解压缩。虽然内容编码层的数量有上限,但是总解压缩输出大小不受限制,并且没有配置选项可以限制它。因此,恶意或错误的上游可返回小型压缩负载(压缩炸弹),其会在客户端内存中扩展到数百兆字节或更多,这种非对称资源消耗可能会耗尽内存并使进程崩溃。这会影响最高和7.29.18.0.0最高到 8.10.2的 undici 版本。7.15.0 用户应升级到 undici 7.29.1 或 8.10.2.(CVE-2026-84890)
undici 的缓存拦截器不会在其缓存路径中的任何位置处理 Set-Cookie 响应头,因此既不会拒绝存储也不会剥离该标头。在共享缓存模式下(默认),会存储带有 Set-Cookie 标头(例如标有 public 和 max-age 指令的响应)的可缓存响应,然后重新呈现给匹配相同缓存密钥的后续调用程序。因此,一个调用程序的 cookie 会泄露给不同的调用程序,不受信任的服务器可将 cookie 注入提供给所有后续调用程序的缓存响应中。这违反了共享缓存不得存储 cookie 的要求。这会影响最高和7.29.18.0.0最高到 8.10.2的 undici 版本。7.0.0
用户应升级到 undici 7.29.1 或 8.10.2.(CVE-2026-84933)
Undici 的转储拦截器读取并丢弃响应正文,最多可配置大小上限。当响应声明超过最大值的 Content-Length 时,拦截器会干净地中止,但当响应没有 Content-Length 并且是分块的时,拦截器会在累积大小达到最大值后提前发出完成信号,而不会暂停或中止请求。由于底层解析器会持续发送正文字节,因此第二个完成信号会触发并跳变内部断言,从而中止请求并中断连接。当连接实际上已断开时,应用程序仍会观察到具有空或截断正文的误导性成功状态。
这会影响最高和7.29.18.0.0最高到 8.10.2的 undici 版本。7.1.0 用户应升级到 undici 7.29.1 或 8.10.2.(CVE-2026-84947)
undici 的 BalancedPool 构造函数通过内部深克隆传递其整个选项对象,该深克隆将值序列化为 JSON 并重新解析。由于 JSON 无法表示函数,因此任何以函数为值的 TLS 选项(例如调用程序提供的 checkServerIdentity 回调或 connect 选项内的自定义连接器)在到达 TLS 层之前都会被静默丢弃。因此,当通过 BalancedPool 到达其证书(应用程序的自定义 checkServerIdentity 被写入拒绝)但仍通过节点的默认主机名和链检查的对等方时,将被接受。客户端、池和代理调度程序不受影响,因为它们会在克隆之前提取连接和 tls 选项。
这会影响最高和最高 8.10.2的 undici 版本7.29.17.24.18.0.0,并且仅当应用程序向 BalancedPool 提供函数值连接或 tls 选项时。用户应升级到 undici 7.29.1 或 8.10.2.(CVE-2026-84961)
undici 的缓存拦截器记录了仅缓存安全的 HTTP 方法,但其跳过缓存的逻辑是通过从安全方法集中减去配置的方法来构建的,因此不安全的方法(如 POST、PUT 或 DELETE)永远不会放在跳过列表中,而是会回到完整的缓存读取路径。响应存储门也缺少方法检查,因此会存储启发式缓存或带有明确缓存控制指令的不安全请求的响应,然后从缓存重播。由于来自远程源的响应头不受信任,源可以以可缓存的状态回答一次,然后在未到达源的情况下从过时缓存条目提供客户端对该路径的后续状态变更请求,而不会到达源,这是在拦截器的默认配置下发生的完整性失败。这会影响最高和7.29.18.0.0最高到 8.10.2的 undici 版本。7.0.0 用户应升级到 undici 7.29.1 或 8.10.2.(CVE-2026-85008)
undici 捆绑了一个 WebSocket 客户端,其 permessage-deflate 大小限制清理从内部 zlib 扩充流中删除所有监听器,包括其错误监听器,而该流仍然可以发出。远程对等机发送的压缩负载超过内置的 128 MiB 解压缩负载限制,然后包含畸形 DEFLATE 字节时,膨胀流会发出未附加任何监听器的数据错误,Node.js将其视为未处理的致命错误并终止整个进程。利用是远程的,未经身份验证,不需要应用程序出错并且是非对称的,因为线路上大约有 130 KB 会扩展超过限制并使进程崩溃,而重新连接则会重复崩溃。这会影响最高到 6.28.1、 和 7.28.07.29.1最高到 8.10.2的 8.1.0 undici 版本6.25.0。用户应升级到 undici 6.28.1、 7.29.1或 8.10.2。(CVE-2026-85024)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行“dnf update nodejs24 --releasever 2023.12.20260928”或“dnf update --advisory ALAS2023-2026-3107 --releasever 2023.12.20260928”以更新系统。
插件详情
文件名: al2023_ALAS2023-2026-3107.nasl
代理: unix
支持的传感器: Agentless Assessment, Continuous Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, 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:U/RL:O/RC:C
漏洞信息
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
易利用性: No known exploits are available