CVE-2026-40973该漏洞是由于Spring Boot在处理会话持久化时,未能对`ApplicationTemp`临时目录的所有权进行严格验证导致的。当应用设置`server.servlet.session.persistent`为`true`时,本地攻击者可以劫持该目录。攻击者利用此漏洞能够读取敏感的会话信息,从而劫持已认证用户的身份。此外,攻击者还可以部署恶意的对象链,在应用程序重启后触发反序列化,最终以应用程序用户的身份执行任意代码,造成严重的安全泄露。
漏洞的核心在于Spring Boot的`ApplicationTemp`类在创建或使用临时目录时,缺少对目录所有者的有效性校验。攻击者首先需要获得宿主机上的本地低权限账户。在应用程序未运行或重启期间,攻击者利用系统默认的临时目录命名规则,提前创建或接管`ApplicationTemp`对应的目录。由于`server.servlet.session.persistent`配置开启,Spring Boot会将Session序列化数据写入该目录。攻击者随后可以替换目录中的合法Session文件,写入包含恶意Gadget Chain的序列化数据。当应用程序重启并尝试从持久化存储中恢复会话状态时,会自动反序列化这些被篡改的文件。如果环境中存在可利用的依赖库,反序列化过程将触发恶意代码执行,导致权限提升或服务器被完全控制。整个过程无需用户交互,且攻击链隐蔽性强。