Rack存在可能的信息泄露漏洞 · CVE-2025-61780
漏洞详情
包信息
- 包名: rack (RubyGems)
- 包管理器: bundler
受影响版本
- < 2.2.20
-
= 3.0, < 3.1.18
-
= 3.2, < 3.2.3
已修复版本
- 2.2.20
- 3.1.18
- 3.2.3
漏洞描述
摘要
当在支持x-sendfile头部的代理(如Nginx)后运行Rack::Sendfile时,存在一个可能的信息泄露漏洞。特制的头部可能导致Rack::Sendfile与代理通信错误,触发意外的内部请求,可能绕过代理级别的访问限制。
详细说明
当Rack::Sendfile从客户端接收到不受信任的x-sendfile-type或x-accel-mapping头部时,会将其解释为代理配置指令。这可能导致中间件向代理发送"重定向"响应,提示代理重新发出新的内部请求,该请求不受代理访问控制约束。
攻击者可通过以下方式利用此漏洞:
- 设置特制的x-sendfile-type: x-accel-redirect头部
- 设置特制的x-accel-mapping头部
- 请求符合基于代理加速条件的路径
影响
攻击者可能绕过代理强制实施的限制,访问本应受保护的内部端点(如管理页面)。此漏洞不允许任意文件读取,但可能暴露敏感的应用路由。
此漏洞仅影响满足以下所有条件的系统:
- 应用程序在使用支持x-accel-redirect的代理(如Nginx)时使用Rack::Sendfile
- 代理不总是设置或移除x-sendfile-type和x-accel-mapping头部
- 应用程序暴露了返回响应.to_path主体的端点
修复方案
升级到修复版本
升级到修复版本的Rack,需要显式配置以启用x-accel-redirect:
|
|
代理配置
或者,配置代理始终设置或剥离头部:
|
|
Rails应用配置
在Rails应用程序中,完全禁用sendfile:
|
|
参考信息
- GHSA-r657-rxjc-j557
- rack/rack@57277b7
- rack/rack@7e69f65
- rack/rack@fba2c8b
- https://nvd.nist.gov/vuln/detail/CVE-2025-61780
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rack/CVE-2025-61780.yml
安全评分
CVSS总体评分
5.8/10(中等严重性)
CVSS v3基础指标
- 攻击向量:网络
- 攻击复杂度:低
- 所需权限:无
- 用户交互:无
- 范围:已更改
- 机密性:低
- 完整性:无
- 可用性:无
EPSS评分
0.042%(第13百分位)
弱点分类
- CWE-200:向未授权参与者暴露敏感信息
- CWE-441:意外代理或中介(“困惑副手”)
- CWE-913:动态管理代码资源控制不当
致谢
- leahneukirchen(分析师)
- jeremyevans(修复审查员)
- matthewd(分析师)
- ioquatix(修复开发者)