Debian DLA-4706:ruby-rack - 安全更新

high Nessus 插件 ID 331301

简介

远程 Debian 主机上缺少一个或多个与安全性相关的更新。

描述

远程 Debian 11 / 12 主机上存在安装的程序包,该程序包受到 DLA-4706 公告中提及的多个漏洞的影响。

- ------------------------------------------------------------------------- Debian LTS 公告 DLA-4706-1 [email protected] PA 2026 https://www.debian.org/lts/security/Abhijith 年 7 月 31 日 https://wiki.debian.org/LTS
- -------------------------------------------------------------------------

程序包:ruby-rack 版本:2.1.4-3+deb11u6 2.2.22-0+deb12u2 CVE ID: CVE-2026-26961 CVE-2026-34230 CVE-2026-34763 CVE-2026-34785 CVE-2026-34786 CVE-2026-34826 CVE-2026-34829 CVE-2026-34830 CVE-2026-34831


在模块化 Ruby webserver 接口 ruby-rack 中发现多个漏洞

CVE-2026-26961

Rack::Multipart::P arser 使用贪婪正则表达式从多部分/表单数据中提取边界参数。当 Content-Type 标头包含多个边界参数时,Rack 选择最后一个而不是第一个。在上游代理、WAF 或中介解释第一个边界参数的部署中,这种不匹配可允许攻击者走私多部分内容并通过上游检查并使 Rack 解析与验证的中间机构不同的正文结构。

CVE-2026-34230

当标头包含许多通配符 (*) 条目时,Rack::Utils.select_best_encoding 会以二次时间复杂度处理 Accept-Encoding 值。由于 Rack::D eflater 使用此方法选择响应编码,因此未经认证的攻击者可发送包含构建的 Accept-Encoding 标头的单个请求并造成压缩中间件路径上不成比例的 CPU 消耗。这会导致使用 Rack::D eflater 的应用程序出现拒绝服务情况。

CVE-2026-34763

Rack::D irectory 在派生显示的目录路径时,将配置的根路径直接插值到正则表达式中。如果根包含 regex 元字符(如 +、* 或 .),前缀剥离可能失败,且生成的目录清单可能在 HTML 输出中暴露完整文件系统路径。

CVE-2026-34785

Rack::Static 使用简单的字符串前缀检查来确定请求是否应作为静态文件提供。使用 URL 前缀(如 /css)进行配置时,它将匹配以该字符串开头的任何请求路径,包括不相关的路径,例如 /css-config.env 或 /css-backup.sql。因此,名称仅共享已配置前缀的静态根下的文件可能会被无意间提供,从而导致信息泄露。

CVE-2026-34786

Rack::Static#applicable_rules 根据原始 URL 编码PATH_INFO评估多种header_rules类型,同时在提供文件之前对底层文件服务路径进行解码。因此,对静态路径的 URL 编码变体的请求可在没有header_rules预期应用的标头的情况下为同一文件提供服务。在依赖 Rack::Static 将安全相关响应头附加到静态内容的部署中,这可允许攻击者通过请求路径的编码形式绕过这些标头。

CVE-2026-34826

Rack::Utils.get_byte_ranges 解析 HTTP Range 标头而不限制各个字节范围的数量。尽管现有 CVE-2024-26141 补丁拒绝总字节覆盖率超过文件大小的范围,但它不会限制范围的计数。攻击者可提供许多小的重叠范围,例如 0-0、0-0、0-0,...以触发每个请求不成比例的 CPU、内存、I/O 和带宽消耗。这会导致处理多部分字节范围响应的 Rack 文件服务路径中出现拒绝服务情况。

CVE-2026-34829

Rack::Multipart::P arser 仅在存在CONTENT_LENGTH时才将请求正文封装在 BoundedIO 中。当发送不带 Content-Length 标头的 multipart/form-data 请求时(例如使用 HTTP 分块传输编码),则多部分解析会一直持续到流结束,没有总大小限制。对于文件部分,上传的正文会直接写入磁盘上的临时文件,而不是受到缓冲的内存上传限制的限制。因此,未经身份验证的攻击者可以流式处理任意大型多部分文件上传,并消耗无限磁盘空间。这会导致接受多部分表单数据的 Rack 应用程序出现拒绝服务情况。

CVE-2026-34830

Rack::Sendfile#map_accel_path 在重写 X-Accel-Redirect 的文件路径时将 X-Accel-Mapping 请求标头的值直接插值到正则表达式中。由于未转义标头值,能够向后端提供 X-Accel-Mapping 的攻击者可注入 regex 元字符并控制生成的 X-Accel-Redirect 响应头。在使用具有 x-accel-redirect 的 Rack::Sendfile 的部署中,这可允许攻击者导致 nginx 从配置的内部位置提供非预期文件。

CVE-2026-34831

Rack::Files#fail 使用 String#size 而非 String#bytesize 设置 Content-Length 响应头。当响应正文包含多字节 UTF-8 字符时,声明的 Content-Length 小于线路上实际发送的字节数。由于 Rack::Files 反映了 404 响应中请求的路径,因此攻击者可通过请求包含百分号编码 UTF-8 字符的不存在路径来触发这种不匹配。这会导致错误的 HTTP 响应框架,并可能在依赖不正确的 Content-Length 值的部署中造成响应去同步化。

对于 Debian 11 bullseye,这些问题已在 2.1.4-3+deb11u6 版本中修复。

对于 Debian 12 bookworm,这些问题已在 2.2.22-0+deb12u2 版本中修复。

我们建议您升级 ruby-rack 程序包。

如需了解 ruby-rack 的详细安全状态,请参阅其安全跟踪页面:
https://security-tracker.debian.org/tracker/ruby-rack

有关 Debian LTS 安全公告、如何将这些更新应用到系统以及常见问题解答的更多信息,请访问以下网址:https://wiki.debian.org/LTS

Tenable 已直接从 Debian 安全公告中提取上述描述块。

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

解决方案

升级 ruby-rack 程序包。

另见

https://packages.debian.org/source/bookworm/ruby-rack

https://packages.debian.org/source/bullseye/ruby-rack

https://security-tracker.debian.org/tracker/CVE-2024-26141

https://security-tracker.debian.org/tracker/CVE-2026-26961

https://security-tracker.debian.org/tracker/CVE-2026-34230

https://security-tracker.debian.org/tracker/CVE-2026-34763

https://security-tracker.debian.org/tracker/CVE-2026-34785

https://security-tracker.debian.org/tracker/CVE-2026-34786

https://security-tracker.debian.org/tracker/CVE-2026-34826

https://security-tracker.debian.org/tracker/CVE-2026-34829

https://security-tracker.debian.org/tracker/CVE-2026-34830

https://security-tracker.debian.org/tracker/CVE-2026-34831

https://security-tracker.debian.org/tracker/source-package/ruby-rack

插件详情

严重性: High

ID: 331301

文件名: debian_DLA-4706.nasl

版本: 1.1

类型: Local

代理: unix

发布时间: 2026/7/30

最近更新时间: 2026/7/30

支持的传感器: Agentless Assessment, Continuous Assessment, Frictionless Assessment Agent, Nessus Agent, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

风险信息

VPR

风险因素: Low

分数: 3

百分位: 23.73

CVSS v2

风险因素: High

基本分数: 7.8

时间分数: 6.1

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

CVSS 分数来源: CVE-2026-34830

CVSS v3

风险因素: High

基本分数: 7.5

时间分数: 6.7

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

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

漏洞信息

CPE: cpe:/o:debian:debian_linux:11.0, cpe:/o:debian:debian_linux:12.0, p-cpe:/a:debian:debian_linux:ruby-rack

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2026/7/31

漏洞发布日期: 2024/2/28

参考资料信息

CVE: CVE-2024-26141, CVE-2026-26961, CVE-2026-34230, CVE-2026-34763, CVE-2026-34785, CVE-2026-34786, CVE-2026-34826, CVE-2026-34829, CVE-2026-34830, CVE-2026-34831