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#2120
-
sinatra/sinatra#1823
-
sinatra/sinatra#2121
-
sinatra/sinatra@3fe8c38
-
sinatra/sinatra@8ff496b
-
https://github.com/rubysec/ruby-advisory-db/blob/master/gems/sinatra/CVE-2025-61921.yml
安全评分
严重程度: 低 CVSS总体评分: 2.7/10
CVSS v4基础指标
可利用性指标
- 攻击向量: 网络
- 攻击复杂度: 低
- 攻击要求: 无
- 所需权限: 无
- 用户交互: 无
脆弱系统影响指标
- 机密性: 无
- 完整性: 无
- 可用性: 低
后续系统影响指标
- 机密性: 无
- 完整性: 无
- 可用性: 无
弱点分类
弱点: CWE-400 描述: 不受控制的资源消耗。产品未能正确控制有限资源的分配和维护,从而使参与者能够影响消耗的资源量,最终导致可用资源耗尽。
弱点: CWE-1333 描述: 低效的正则表达式复杂度。产品使用了具有低效、可能指数级最坏情况计算复杂度的正则表达式,消耗过多的CPU周期。
标识符
- CVE ID: CVE-2025-61921
- GHSA ID: GHSA-mr3q-g2mv-mr4q
源代码: sinatra/sinatra
致谢: dentarg