漏洞概述 漏洞编号: CVE-2026-41862 漏洞名称: Kryo反序列化持久化上下文无类白名单 描述: Spring Statemachine的Kryo持久化后端(JPA、MongoDB、Redis和ZooKeeper)在没有强制类白名单的情况下反序列化持久化状态机上下文(CWE-502,不受信任数据的反序列化),可能导致应用程序JVM内的远程代码执行。 影响范围 受影响的Spring产品: Spring Statemachine 受影响版本: - 4.0.0 - 4.0.1 - 3.2.0 - 3.2.4 修复方案 修复版本: - 4.0.x -> 4.0.2 (OSS) - 4.0.x -> 4.0.1.1 (Enterprise Support Only) - 3.2.x -> 3.2.5 (Enterprise Support Only) 修复措施: - 用户应升级到相应的修复版本。 - 修复版本启用了 并通过新的 助手注册框架和JDK类型的显式白名单。 - 这是一个行为变更,影响所有使用自定义状态或事件类型的应用程序:这些类型必须通过Kryo显式注册,否则Kryo会抛出 在首次持久化/加载时。 注册应用程序特定的状态和事件类型 每个持久化层工厂接受一个新的 回调,该回调在框架默认值应用后对每个Kryo实例调用一次。使用它来注册应用程序的 S (状态) 和 E (事件) 类。 JPA MongoDB Redis ZooKeeper 如果事件头或扩展状态变量包含超出JDK和框架默认注册类型的类型,请在同一个 中注册这些类型,以及 。 其他注意事项 Wire-format不兼容性: 由于注册要求,Kryo通过注册的数字ID而不是类名来识别类。由旧版本持久化的状态机上下文无法被修复版本读取。在升级期间排空或迁移持久化后端,或者接受预升级上下文不可读。 Redis键命名空间: 现在为每个Redis键添加一个固定的命名空间( 默认),因此用户提供的机器ID不会与不同逻辑数据库中的键冲突。现有键由旧版本写入在升级后不可见;要么在命名空间下重写上下文,要么如果需要向后兼容性,传递一个空前缀: 参考 NVD链接 历史 2026-06-11: 初始漏洞报告发布。