简介
远程 Amazon Linux 2 主机缺少安全更新。
描述
远程主机上安装的 libsoup 版本低于 2.56.0-6。因此,该软件受到 ALAS2-2026-3970 公告中提及的多个漏洞影响。
通过 libsoup/websocket/soup-websocket-connection.c 通过 libsoup 上的整数溢出造成的 OOB 读取 process_frame() 导致未定义的行为 (CVE-2026-0716)
(提交 6ff7ef0,libsoup3.6.6)的CVE-2026-0716补丁将整数溢出防护置于 if(已屏蔽)块内,而未屏蔽的服务器到客户端帧不会受到保护。当 max_incoming_payload_size 设置为 0 时,恶意 WebSocket 服务器可发送负载长度接近 UINT64_MAX 的特制未屏蔽帧,以触发基于 libsoup 的客户端中的 OOB 读取。(CVE-2026-12478)
SoupAuthManager 缓存代理认证凭据,而不将其界定到代理颁发机构 (host:port)。当代理配置发生变更(例如通过系统设置或 WPAD)时,来自之前代理的缓存 Proxy-Authorization 标头会发送到新代理,导致泄露凭据。
(CVE-2026-12547)
在 libsoup 中发现堆越界读取缺陷。解析多部分 HTTP 消息时,调用程序和 soup_headers_parse() 之间的整数类型不匹配可造成长度参数被错误截断,从而造成堆缓冲区过度读取。远程攻击者可利用此缺陷,造成使用 libsoup 的应用程序崩溃,或可能泄露堆内存内容。(CVE-2026-12548)
后续 CVE-2026-2443 返工提交回归了该补丁,该返工提交将特定溢出检查替换为通用签名比较。当客户端发送后缀长度超出内容大小的范围请求时,不会正确限制产生的负起始值,从而导致畸形 HTTP 206 响应和日志洪流。(CVE-2026-12549)
在 libsoup 中发现一个缺陷。解析多部分 HTTP 响应时,soup_filter_input_stream_read_until() 函数中的未签名整数下溢造成堆缓冲区过度读取。恶意的 HTTP 服务器可通过发送构建的多部分响应来利用此漏洞,从而可能导致客户端应用程序崩溃或泄露敏感堆内存。(CVE-2026-66337)
在 libsoup 中发现一个缺陷。分块传输编码解析器对区块大小使用宽松的解析函数,以静默方式接受违反 RFC 9112 的输入,包括前导空白、加号前缀和结尾的无效字符。当 libsoup 在严格的前端代理背后运行时,此解析差异可被利用于走私 HTTP 请求。(CVE-2026-66338)
在 libsoup 中发现一个缺陷。通过 HTTP 代理建立 CONNECT 隧道后,libsoup 会错误地将 Proxy-Authorization 标头附加到通过该隧道发送到目标服务器的后续 HTTPS 请求中。这允许目标服务器捕获代理凭据,导致信息泄露。(CVE-2026-66339)
在 libsoup 的 SoupServer HTTP 范围标头处理中发现一个缺陷。soup-message-headers.c 中的 sort_ranges() 比较器将 64 位的减法结果截断为 32 位的 int,从而翻转相差超过 INT_MAX 的范围偏移的符号。这会导致大于约 2 GB 资源上的 HTTP 206 部分内容响应无记载遗漏请求的字节范围。(CVE-2026-77014)
libsoup 的 HTTP Range 标头处理中存在一个算法复杂性缺陷,该缺陷在修复后 CVE-2025-32907 仍然存在。
CVE-2025-32907 解决了客户端在单个 Range 标头中多次重复相同范围时的内存放大问题。提交 9bb92f7a 修正了 libsoup/soup-message-headers.c 中 soup_message_headers_get_ranges_internal() 中的合并正确性,但 coalescing 循环仍然为每个 coalesced 元素使用 g_array_remove_index() 删除合并的范围。由于 GArray 是连续的,因此每个中间阵列删除都会执行一次 O(N) 内存移动。当提供许多相同的可满足范围(例如,bytes=0-0 重复数千次)时,循环会执行 O(N2) 工作,将它们合并为单个范围。
服务器端可从 libsoup/server/http1/ 中的 handle_partial_get() 到达此易受影响的路径soup-server-message-io-http1.c 当 SoupServer 处理程序返回具有非空正文的 HTTP 200 时。无需身份验证。范围数仅受最大请求标头大小 (~100 KiB) 的限制,每个请求大约允许 25,000 个范围。报告者对包含补丁的 CVE-2025-32907 libsoup HEAD 的测量结果显示,线路上每个此类请求的单核 CPU 最大值为 ~90 毫秒,从而在该持续时间内阻断服务器的事件循环。
这只是 CPU 耗尽/可用性问题。不会发生任何内存损坏或信息泄露。
受影响:包含补丁但 CVE-2025-32907 未包含合并请求 !550 的 libsoup 版本。已修复上游:MR !550 于 2026 年 8 月 20 日合并,将每个元素删除替换为 O(N) 就地压缩,并拒绝请求超过 200 个范围的 Range 标头。上游报告:
https://gitlab.gnome.org/GNOME/libsoup/-/issues/538Related: CVE-2025-32907 (CVE-2026-77680)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行 'yum update libsoup' 或 /或 'yum update --advisory ALAS2-2026-3970' 以更新系统。
插件详情
文件名: al2_ALAS-2026-3970.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:P/I:P/A:N
矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
时间矢量: CVSS:3.0/E:P/RL:O/RC:C
漏洞信息
CPE: cpe:/o:amazon:linux:2, p-cpe:/a:amazon:linux:libsoup-debuginfo, p-cpe:/a:amazon:linux:libsoup-devel, p-cpe:/a:amazon:linux:libsoup
必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
易利用性: Exploits are available
参考资料信息
CVE: CVE-2026-0716, CVE-2026-12478, CVE-2026-12547, CVE-2026-12548, CVE-2026-12549, CVE-2026-66337, CVE-2026-66338, CVE-2026-66339, CVE-2026-77014, CVE-2026-77680
IAVA: 2026-A-0139-S, 2026-A-0555-S, 2026-A-0894