Sinatra框架存在ETag头生成导致的ReDoS漏洞

本文披露了Ruby Web框架Sinatra中一个低危的拒绝服务漏洞。该漏洞源于对If-Match和If-None-Match请求头的解析过程,在特定条件下可能因正则表达式处理不当而导致正则表达式拒绝服务攻击。

漏洞详情

CVE编号: CVE-2025-61921 GHSA编号: GHSA-mr3q-g2mv-mr4q 受影响版本: Sinatra < 4.2.0 已修复版本: Sinatra 4.2.0 严重性: 低 (CVSS v4.0 评分为2.7)

漏洞描述

摘要

Sinatra框架的If-Match和If-None-Match请求头解析组件存在拒绝服务漏洞,当使用etag方法构建响应且运行在Ruby 3.2以下版本时,该漏洞可能被利用。

详细信息

精心构造的输入可能导致Sinatra框架在处理If-Match和If-None-Match请求头时消耗超乎预期的时间,这可能构成一个拒绝服务攻击向量。这些请求头通常用于生成ETag响应头的值。任何在生成响应时使用了etag方法,并且运行在低于3.2版本的Ruby环境下的应用程序都会受到影响。

该漏洞本质上是一个正则表达式拒绝服务攻击,与低效的正则表达式复杂性有关。

资源与参考

安全弱点归类

  • CWE-400: 不受控制的资源消耗 - 产品未能妥善控制有限资源的分配和维护。
  • CWE-1333: 低效的正则表达式复杂性 - 产品使用了具有低效(可能是指数级最坏情况计算复杂度)的正则表达式,消耗了过多的CPU周期。

时间线

  • 2025年10月10日: 漏洞报告者dentarg向sinatra/sinatra仓库提交报告。
  • 2025年10月10日: 漏洞发布于国家漏洞数据库和GitHub安全通告数据库,并经过审核。
  • 2025年10月13日: 安全通告最后更新。

漏洞评分详情 (CVSS v4.0)

基础向量: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:U

  • 攻击向量: 网络
  • 攻击复杂度:
  • 所需权限:
  • 用户交互:
  • 受影响系统影响:
    • 机密性:无影响
    • 完整性:无影响
    • 可用性:低影响
  • 环境指标: 可利用性不确定性

EPSS评分: 0.108% (30百分位),此评分估计该漏洞在未来30天内被利用的概率。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计