CVE-2026-33658CVE-2026-33658 是 Ruby on Rails Active Storage 组件中的拒绝服务漏洞。在 8.1.2.1、8.0.4.1 和 7.2.3.1 之前的版本中,代理控制器未限制 HTTP Range header 中的字节范围数量。攻击者可发送包含数千个小范围的恶意请求,导致服务器消耗过多 CPU 资源,从而造成服务拒绝。此漏洞利用门槛低,且无需用户交互,对应用可用性构成威胁。
该漏洞的核心在于 Active Storage 代理控制器对 HTTP Range header 的处理机制存在缺陷。HTTP Range 请求通常用于断点续传,允许客户端请求文件的特定字节部分。尽管 RFC 7233 规范允许在单个请求中指定多个范围,但 Active Storage 在实现时未对范围的数量设置上限。攻击者可构造一个包含数千个极小范围(如 bytes=0-0,1-1,2-2...)的恶意 HTTP 请求。当服务器处理该请求时,必须解析每一个范围、定位文件位置并构建相应的响应体。这种操作会占用大量的 CPU 周期和内存资源,相比于正常请求,其计算成本呈指数级增长。由于 CVSS 评分显示攻击复杂度低且需要低权限,已认证的恶意用户即可轻易发起攻击,耗尽服务器资源,导致合法用户无法访问服务。