IPBUF安全漏洞报告
English
CVE-2026-34763 CVSS 5.3 中危

Rack 文件系统路径信息泄露漏洞 (CVE-2026-34763)

披露日期: 2026-04-02

漏洞信息

漏洞编号
CVE-2026-34763
漏洞类型
信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Rack

相关标签

Information DisclosurePath DisclosureRackRubyCWE-200CVE-2026-34763

漏洞概述

Rack是一个流行的Ruby Web服务器接口。在2.2.23、3.1.21和3.2.6版本之前,Rack::Directory组件在生成目录路径时,直接将用户配置的根路径拼接到正则表达式中。如果根路径包含正则元字符(如+, *, .),会导致前缀剥离逻辑失效,进而在HTML输出中暴露完整的文件系统路径。攻击者可利用此漏洞获取服务器敏感目录结构信息。

技术细节

该漏洞的核心在于Rack::Directory组件在处理路径显示时存在不当的正则表达式使用方式。在受影响的版本中,为了生成用户友好的目录列表,程序需要从完整的物理文件系统路径中移除用户配置的根目录前缀。实现上,代码直接将root path参数拼接到用于替换操作的正则表达式中,而未使用Regexp.escape等方法对特殊字符进行转义。当root path包含正则元字符(如点号.、加号+、星号*等)时,这些字符在正则引擎中会被解释为通配符或量词,而非字面字符。这种语义差异导致正则匹配失败,原本应被剥离的前缀部分保留了下来。因此,在渲染HTML页面时,服务器端直接将完整的绝对路径返回给了客户端。攻击者无需任何权限即可通过简单的HTTP请求触发此逻辑,进而获取服务器端的目录结构、用户名或潜在的敏感文件位置信息,虽然不直接导致代码执行,但为后续攻击提供了重要情报。

攻击链分析

STEP 1
侦察
攻击者识别目标使用的是Rack框架,并确认其版本在受影响范围内(< 2.2.23, < 3.1.21, 或 < 3.2.6)。
STEP 2
配置探测
攻击者尝试访问目录列表页面,观察是否存在文件路径泄露,或者根据应用特征推测其根目录配置可能包含特殊字符。
STEP 3
漏洞利用
攻击者向开启Rack::Directory的端点发送HTTP请求。由于服务端配置的根路径包含正则元字符(如.),正则匹配失效,导致HTML响应中直接返回了服务器上的完整物理路径。
STEP 4
信息收集
攻击者从响应中提取完整文件系统路径,了解服务器的目录结构、用户命名规范或敏感文件位置,为后续攻击做准备。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC Concept for CVE-2026-34763 # This requires a vulnerable Rack setup with a specific root path configuration. require 'rack' # Scenario: Configuring Rack::Directory with a root path containing regex metacharacters # For example, a directory named 'app.v1' or 'data+backup' vulnerable_root = "/var/www/app.v1" # Vulnerable Middleware Setup # In versions < 2.2.23, < 3.1.21, < 3.2.6, the '.' in 'app.v1' is treated as 'any character' # causing the prefix stripping to fail. use Rack::Directory, vulnerable_root run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ["Rack App Running"]] } # Exploitation Step: # 1. Send a GET request to the application (e.g., http://target/) # 2. Inspect the HTML response of the directory listing. # 3. Observe that the file paths contain the full filesystem path '/var/www/app.v1/...' # instead of just the relative path '/...'. # 4. This confirms the information disclosure vulnerability.

影响范围

Rack < 2.2.23
Rack >= 3.0.0, < 3.1.21
Rack >= 3.2.0, < 3.2.6

防御指南

临时缓解措施
如果无法立即升级,请确保 Rack::Directory 的 root 配置路径中不包含任何正则表达式元字符(例如 ., +, *, ?, ^, $, (, ), [, ], {, }, |, \)。修改配置路径以移除这些字符可以临时缓解前缀剥离失败导致的信息泄露问题。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表