CVE-2025-66803CVE-2025-66803是Hotwired Turbo框架中的一个中等严重性安全漏洞,CVSS评分4.8。该漏洞存在于turbo-frame元素处理器中,是一种竞态条件(Race Condition)问题。在用户执行登出操作时,由于延迟的frame响应会在登出后重新应用会话Cookie,导致登出操作失败。这意味着攻击者可以通过精心设计的时间延迟攻击,强制使用户的会话保持活跃状态,从而绕过登出保护机制。
此漏洞影响Hotwired Turbo 8.0.x之前的所有版本。攻击者可以通过选择性网络延迟(如基于请求序列或时间的延迟)或在共享计算机场景下利用自然发生的竞态条件来实施攻击。漏洞的核心问题在于框架在处理多个并发请求时,没有正确处理会话状态与frame响应的时序关系,导致已失效的会话Cookie被重新激活。
该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N,表明攻击复杂度较高但无需认证和用户交互。机密性和完整性影响均为低级别,但由于攻击的持久性,可能导致敏感数据的持续暴露风险。对于使用Hotwired Turbo构建的Web应用,如果用户会话管理依赖于框架的默认行为,则可能受到此漏洞影响。
Hotwired Turbo是一个用于加速现代Web应用的速度的框架,它通过使用turbo-frame和turbo-stream技术来优化页面导航和部分更新。在该框架的turbo-frame元素处理器中,存在一个竞态条件漏洞。
漏洞原理:当用户发起登出请求时,服务器端会清除用户的会话Cookie并使会话失效。然而,如果在登出请求完成之前,用户浏览器中存在的turbo-frame发起了一个异步请求,该请求可能携带旧的会话Cookie。当登出操作完成后,如果延迟的frame响应返回到浏览器,框架的错误处理逻辑会尝试重新应用这些Cookie,导致已失效的会话被重新激活。
攻击利用方式:
1. 攻击者需要能够控制或影响用户与目标Web应用之间的网络流量(例如通过中间人攻击或利用网络设备)
2. 监控用户的登出请求
3. 当检测到登出请求时,故意延迟响应,同时保持之前的frame请求处于挂起状态
4. 在登出完成后,让延迟的frame响应返回,触发Cookie重新应用
5. 由于会话Cookie被重新应用,用户的会话实际上并未真正终止
在共享计算机环境中,攻击者还可以物理接近目标用户,等待竞态条件自然发生,然后利用未正确终止的会话来访问用户账户。