CVE-2025-67726CVE-2025-67726是Tornado Python Web框架中的一个拒绝服务漏洞。Tornado是一个高性能的Python Web框架和异步网络库,广泛用于构建Web应用程序和API服务。该漏洞存在于Tornado 6.5.2及以下版本中,由于`_parseparam`函数在解析HTTP头值时使用了低效的算法,在处理包含大量参数的Content-Disposition头时,会导致服务器CPU使用率呈二次方增长(O(n²)复杂度)。攻击者无需认证即可通过发送特制的恶意HTTP请求触发该漏洞,单个请求即可使整个服务器在很长一段时间内无响应。该漏洞CVSS评分为7.5,属于高危漏洞,已在Tornado 6.5.3版本中修复。
漏洞根源在于Tornado的httputil.py文件中的_parseparam函数。该函数用于解析HTTP头值,特别是multipart/form-data中的Content-Disposition头。问题出在处理带引号的分号时,函数在嵌套循环中重复调用string.count()方法。当HTTP请求中包含大量恶意构造的参数时,解析过程的复杂度会从线性增长变为二次方增长。攻击者可以在Content-Disposition头中注入大量分号分隔的参数,由于每个参数的处理都需要扫描整个字符串,导致处理时间呈O(n²)增长。在Tornado的单事件循环架构下,这种CPU密集型操作会阻塞整个事件循环,使服务器无法处理其他请求,最终导致拒绝服务。修复方案优化了_parseparam函数的实现,避免了在循环中重复调用count方法。