简介
远程 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 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
插件详情
文件名: debian_DLA-4706.nasl
代理: unix
支持的传感器: Agentless Assessment, Continuous Assessment, Frictionless Assessment Agent, Nessus Agent, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus
风险信息
矢量: CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:N
矢量: 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
易利用性: Exploits are available