CVE-2023-30861
Flask 因缺少 Vary: Cookie 标头而可能泄露永久会话 Cookie
- 已发布
- 2023年5月2日
- 已更新
- 2025年2月13日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月8日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N低 · 未来 30 天
- 百分位
- 67.8%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Flask 是一个轻量级的 WSGI Web 应用框架。当满足以下所有条件时,本应发送给某个客户端的响应数据可能会被缓存,随后由代理发送给其他客户端。如果代理还缓存了 `Set-Cookie` 头,则可能将一个客户端的 `session` cookie 发送给其他客户端。严重程度取决于应用程序对 session 的使用方式以及代理对 cookie 的处理行为。风险取决于所有这些条件是否得到满足。1. 应用程序必须托管在不会剥离 cookie 或不会忽略带 cookie 响应的缓存代理之后。2. 应用程序设置 `session.permanent = True` 3. 应用程序在请求期间的任何时刻都不会访问或修改 session。4. 已启用 `SESSION_REFRESH_EACH_REQUEST`(默认启用)。5. 应用程序未设置 `Cache-Control` 头来指示页面为私有或不应被缓存。发生此问题的原因是,存在漏洞的 Flask 版本仅在 session 被访问或修改时才设置 `Vary: Cookie` 头,而在 session 被刷新(重新发送以更新过期时间)但未被访问或修改时不会设置。该问题已在 2.3.2 和 2.2.5 版本中修复。
来源
1基于 Docker 的 Flask CVE-2023-30861 PoC,演示 Flask 与反向代理缓存服务器之间的会话处理漏洞,用于安全研究与测试。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。