关键漏洞信息 漏洞概述 标题: Unbounded parameter parsing in can lead to memory exhaustion 严重性: High (7.5/10) CVE ID: CVE-2025-46727 CVSS v3 基本指标: - 攻击向量: Network - 攻击复杂度: Low - 所需权限: None - 用户交互: None - 范围: Unchanged - 机密性影响: None - 完整性影响: None - 可用性影响: High 影响版本与修复版本 受影响版本: - = 3.0, = 3.1, < 3.1.14 已修复版本: - 2.2.14 - 3.0.16 - 3.1.14 漏洞描述 摘要: 解析查询字符串和 主体,将其转换为 Ruby 数据结构,但不对参数数量设置上限,允许攻击者发送包含大量参数的请求。 详细信息: 由于 在不强制限制总参数数量的情况下迭代每个 & 分隔的键值对并将其添加到 Hash 中,攻击者可以发送单个请求,其中包含数十万(或更多)个参数,这在解析过程中消耗大量内存和 CPU。 影响: 攻击者可以通过发送精心设计的 HTTP 请求触发拒绝服务,导致内存耗尽或锁定 CPU 资源,使 Rack 服务器停滞或崩溃。这会导致服务完全中断,直到受影响的工作进程被重新启动。 缓解措施 更新到限制解析参数数量的 Rack 版本。 使用中间件强制执行最大查询字符串大小或参数计数。 使用反向代理(如 Nginx)限制请求大小并拒绝过大的查询字符串或主体。 在 Web 服务器或 CDN 级别限制请求正文大小和查询字符串长度是一种有效的缓解措施。