CVE-2026-40975Spring Boot特定版本中的随机属性源存在安全缺陷,使用${random.value}、${random.int}和${random.long}生成的值不适合用作安全密钥。这些数值基于强度不足的伪随机数生成器(PRNG),具有可预测性。如果开发者将此类随机值用于生成敏感信息的凭证或密钥,攻击者可能通过预测算法推算出这些秘密值,从而导致信息泄露。受影响的版本范围较广,包括Spring Boot 2.7.x至4.0.x的多个旧版本,官方已在后续补丁版本中修复此问题。
该漏洞的根本原因在于Spring Boot的`RandomValuePropertySource`类在处理`${random.value}`等属性时,底层依赖于`java.util.Random`类。`java.util.Random`是一个线性同余生成器(LCG),并非密码学安全的伪随机数生成器(CSPRNG)。其算法输出的随机序列在统计学上是可预测的,尤其是当攻击者能够获取部分随机值或知晓生成时间(通常基于系统时间戳作为种子)时,可以通过有限的计算量还原出随机数生成的状态,从而准确预测后续生成的随机数值。若应用程序错误地使用这些属性来生成JWT签名密钥、数据库密码或API Token,攻击者无需任何认证即可通过网络远程预测这些凭证,进而绕过身份验证或窃取敏感数据。值得注意的是,`${random.uuid}`的实现机制不同,不受此漏洞影响。