CVE-2026-34827Rack是一个模块化的Ruby Web服务器接口。在3.0.0.beta1至3.1.21之前的版本以及3.2.0至3.2.6之前的版本中,Rack::Multipart::Parser#handle_mime_head存在拒绝服务漏洞。该组件在解析带引号的多部分参数时,使用了重复的String#index搜索配合String#slice!前缀删除。对于包含大量转义字符的引号值,这种处理方式会导致超线性的计算消耗。未经身份验证的攻击者可发送包含多个长反斜杠转义参数值的恶意multipart/form-data请求,触发解析期间CPU资源耗尽,从而导致Rack应用程序拒绝服务。官方已在3.1.21和3.2.6版本中修复此问题。
该漏洞属于算法复杂度攻击,核心问题在于Rack处理Multipart表单数据时的低效字符串操作。具体而言,漏洞位于`Rack::Multipart::Parser#handle_mime_head`方法,负责解析Content-Disposition等头部字段。当解析含有转义符的引用字符串时,代码采用了循环调用`String#index`查找位置并使用`String#slice!`截取字符串的逻辑。在处理包含极长反斜杠转义序列(如`\\...`)的恶意输入时,这种操作会导致时间复杂度呈超线性增长。攻击者无需用户交互或认证,只需构造一个特制的HTTP POST请求,在multipart/form-data的头部参数中注入大量转义字符。当服务器解析这些数据时,CPU使用率会瞬间飙升,处理线程被长时间阻塞,最终导致服务不可用。该漏洞不涉及数据泄露或权限提升,但严重威胁服务的可用性。