Sinatra存在ETag头生成导致的ReDoS漏洞
漏洞详情
包信息
- 包: bundler、sinatra (RubyGems)
- 受影响版本: < 4.2.0
- 已修复版本: 4.2.0
漏洞描述
概要 Sinatra的If-Match和If-None-Match头解析组件存在拒绝服务漏洞,如果在构建响应时使用etag方法且使用Ruby < 3.2版本,则可能受到影响。
详细信息 精心构造的输入可能导致Sinatra中的If-Match和If-None-Match头解析消耗意外长的时间,可能造成拒绝服务攻击向量。该头通常涉及生成ETag头值。任何在生成响应时使用etag方法且使用低于3.2版本Ruby的应用程序都会受到影响。
资源链接
- sinatra/sinatra#2120 (报告)
- sinatra/sinatra#2121 (修复)
- sinatra/sinatra#1823 (较早的ReDoS漏洞)
参考信息
- GHSA-mr3q-g2mv-mr4q
- sinatra/sinatra@3fe8c38
- sinatra/sinatra@8ff496b
- https://nvd.nist.gov/vuln/detail/CVE-2025-61921
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/sinatra/CVE-2025-61921.yml
安全评估
严重程度
- 等级: 低
- CVSS总体评分: 2.7/10
CVSS v4基础指标
可利用性指标
- 攻击向量:网络
- 攻击复杂度:低
- 攻击要求:无
- 所需权限:无
- 用户交互:无
脆弱系统影响指标
- 机密性:无
- 完整性:无
- 可用性:低
后续系统影响指标
- 机密性:无
- 完整性:无
- 可用性:无
EPSS评分
- 得分: 0.076% (第23百分位)
弱点分析
弱点类型
- CWE-400: 不受控制的资源消耗
- CWE-1333: 低效的正则表达式复杂度
标识信息
- CVE ID: CVE-2025-61921
- GHSA ID: GHSA-mr3q-g2mv-mr4q
时间线
- 报告时间: 2025年10月10日
- 最后更新: 2025年10月13日
- 发布至GitHub咨询数据库: 2025年10月10日
- 审核时间: 2025年10月10日
源代码
- 仓库: sinatra/sinatra
致谢
- 发现者: dentarg
- 修复审核者: dentarg