CVE-2026-40973:可预测临时目录在未验证所有权的情况下被接受
高危 | 2026年4月23日 | CVE-2026-40973
描述
本地攻击者如果与应用运行在同一主机上,可能控制应用使用的 ApplicationTemp 目录。当 server.servlet.session.persistent 被设置为 true,并且攻击在应用重启后仍然持续存在时,攻击者可能获取会话信息,并劫持已认证用户会话,或部署 gadget chain,从而以应用用户身份执行代码。
该问题的风险集中在临时目录所有权和会话持久化机制上。临时目录如果路径可预测,并且在使用前没有充分验证目录归属和权限,就可能被同一主机上的其他用户或进程抢占、篡改或植入恶意内容。对于启用了持久化会话的应用来说,重启后仍会读取相关会话数据,一旦临时目录被攻击者控制,就可能造成会话数据泄露或执行链被利用。
应用并非只要使用 Spring Boot 就一定受到影响。该问题需要攻击者具备同主机访问条件,并且应用配置与运行环境满足相关触发条件。共享主机、多用户服务器、权限隔离不足的测试环境,以及临时目录管理不规范的部署环境,需要重点排查。
受影响的 Spring 产品和版本
受影响产品为 Spring Boot,涉及以下版本:
● 4.0.0 - 4.0.5
● 3.5.0 - 3.5.13
● 3.4.0 - 3.4.15
● 3.3.0 - 3.3.18
● 2.7.0 - 2.7.32
已停止支持的版本同样受到影响。
缓解措施
受影响版本的用户应升级到对应修复版本。升级后,临时目录处理和所有权验证逻辑会得到修正,降低可预测目录被本地攻击者利用的风险。
无需采取额外缓解措施。建议受影响用户尽快升级至对应修复版本,并在升级后验证应用启动、会话恢复、用户登录和重启后的会话处理流程是否正常。
处理建议
建议先确认应用是否使用受影响范围内的 Spring Boot 版本,并检查是否启用了 server.servlet.session.persistent=true。如果启用了持久化会话,应重点排查临时目录位置、目录权限、目录所有者和重启后的会话加载行为。
对于生产环境,不建议将会话持久化数据放在权限边界不清晰的共享目录中。应使用应用专属目录,并确保只有应用运行账号具备必要读写权限。共享主机或多用户环境中,还应避免不同应用共用同一个临时目录。
如果近期出现过异常登录状态、会话恢复异常、重启后用户状态混乱或临时目录中存在不明文件,应结合系统日志、文件修改时间和应用访问日志进一步排查影响范围。