关键漏洞信息 漏洞概述 标题: sessions can be restored after deletion 严重性: 中等 (4.2/10) CVE ID: CVE-2025-46336 CVSS v3 基本指标: - 攻击向量: 网络 - 攻击复杂度: 高 - 所需权限: 低 - 用户交互: 无 - 范围: 不变 - 机密性: 低 - 完整性: 低 - 可用性: 无 影响范围 受影响版本: >= 2.0.0, < 2.1.1 修复版本: 2.1.1 漏洞描述 摘要: 使用 中间件时,同时的 Rack 请求可以恢复已删除的 Rack 会话,允许未认证用户占用该会话。 详细信息: Rack 会话中间件在请求开始时准备会话,然后保存回存储区,可能会应用主机 Rack 应用程序所做的更改。这种方式会使会话成为并发 Rack 请求中竞争条件的主题。 影响: 如果攻击者可以获得会话 cookie(已经是主要问题),并且触发长时间运行的请求(在同一会话内)紧邻用户注销,会话可能被恢复,即使用户已尝试注销,也能保留非法访问。 缓解措施 更新到最新版本的 。 确保应用程序通过标记会话为已注销(例如使用 标志)而不是删除它们来原子地使会话失效,并在每个请求上检查此标志以防止重用。 实现自定义会话存储,跟踪会话无效时间戳,并拒绝接受如果会话在请求开始后被无效化的会话数据。 相关信息 此代码以前是 Rack 的一部分,在 Rack < 3 中,参见 GHSA-vpfw-47h7-xj4g 获取 Rack 中等效建议(仅影响 Rack < 3)。