flask 官方更新日志页显示,3.1.3 版本在 2026 年 2 月 18 日正式发布。这个版本的更新说明不长,但提到了一个影响会话行为的安全细节:当操作只读取 session 的键、不访问对应值时,比如用 in 判断键是否存在,或是用 len 取长度,现在这类操作也会把 session 标记为已访问。这次更新关联漏洞编号 ghsa-68rp-wp8r-4726,说明它不是普通的文档微调,而是和会话访问状态、缓存响应边界相关的安全修复。

来源:Flask 官方 Changes 页面
在 Flask 应用里,session 有没有被访问,会直接影响响应的缓存相关逻辑,尤其是依赖 Cookie 会话状态的页面。之前如果代码只是判断某个键是否存在,根本不会按预期触发 accessed 标记,最后就会导致响应缓存、中间层的运行出现偏差。3.1.3 把这类只读键操作纳入了访问标记的触发范围,修复的不是业务接口返回值,而是框架对“访问 session”这个动作的定义。
这个更新对 Flask 扩展作者、大型应用维护者的影响更明显。很多应用都会把权限状态、临时提示、登录信息或 CSRF 相关数据存在 session 里,哪怕视图函数只判断键是否存在,框架也需要正确标记“当前响应依赖了会话”,否则缓存层可能无法从响应头中得到足够的判断信号。Flask 官方把 3.1.3 放在 3.1 系列更新日志的最顶部,也提示还在用 3.1.0 或 3.1.2 的项目,尽快评估这个补丁。

来源:Flask 官方 Changes 页面
从更新范围来看,3.1.3 没有新增任何公开 API,也没有大规模的破坏性调整。它完全可以纳入常规的安全和框架维护更新流程:先确认当前项目的 Flask 版本,再检查有没有自定义 session、缓存中间件、反向代理缓存,或是第三方扩展依赖旧的 session accessed 行为规则。对大多数应用来说,升级前后的主要验证点放在登录态页面、缓存头、测试客户端和扩展兼容性上就足够。
信源说明:本文依据 Flask 官方 Changes 页面撰写;GHSA 细节和受影响边界以 Flask 官方说明及项目自身依赖配置为准。

















