孤本网
/ 0 阅读
0
0

Spring 生态多项目同步发布首个里程碑版本,修复超过 90 个安全漏洞

一句话结论

Spring 生态十余个项目同步发布 4.2 或 7.1 等首个里程碑版本,并修复超 90 个 CVE,推动技术栈全面升级。

关键要点

  • Spring Boot 4.2.0、Spring Framework 7.1.0、Spring Data 2026.1.0、Spring Security 7.2.0 等核心项目发布首个里程碑版本。
  • 超过 90 个 CVE 在多个 Spring 项目中得到修复,涵盖 Spring Integration、Spring AMQP 等组件。
  • Spring Boot 4.2.0-M1 新增对 AMQP 1.0 规范的支持,并引入 Eclipse Jetty 的 GracefulHandler 实现优雅关闭。
  • Spring Data 2026.1.0-M1 引入 RedisJsonTemplate 类,为 Redis JSON 数据格式提供初步支持。
  • Spring Batch 6.1.0-M1 依赖升级,要求使用 Spring Framework 7.1.0-M1 和 Spring Integration 7.2.0-M1 等最新里程碑。

背景与事实

在经历大约 10 周的发布停滞期后,Spring 生态系统近期恢复了密集的发布活动。InfoQ 中文报道指出,此次更新涵盖了 Spring Boot、Spring Framework、Spring Data、Spring Security、Spring Integration、Spring HATEOAS、Spring Modulith、Spring Batch、Spring AMQP 和 Spring for Apache Kafka 等多个关键项目。这些项目均发布了各自新系列版本(如 4.2.0 或 7.1.0 系列)的首个里程碑版本(Milestone,简称 M1),标志着新一轮开发周期的正式启动。

此次更新的核心亮点之一是安全修复。超过 90 个通用漏洞披露(CVE)在许多 Spring 项目中得到修补,其中 Spring Integration 和 Spring AMQP 的具体修复细节已公开。例如,Spring Integration 修复了 CVE-2026-59307,该漏洞源于 JdbcMessageStore 类的 addAllowedPatterns() 方法存在逻辑缺陷,允许攻击者利用 Java 反序列化实现远程代码执行;同时修复了 CVE-2026-59321,该漏洞涉及 JSR-223 脚本引擎在并发处理时的状态污染,可能导致消息载荷泄露。Spring AMQP 则修复了 CVE-2026-47860,该漏洞允许攻击者通过发布 1MB 消息导致消费者 JVM 崩溃;以及 CVE-2026-59271,该漏洞会在 RabbitMQ 管理存活性检查失败时,将明文密码暴露在异常日志中。

在具体功能方面,Spring Boot 4.2.0 的第一个里程碑发布带来了 AMQP 1.0 规范支持,并引入了来自 RabbitMQ 的相关功能。同时,它使用 Eclipse Jetty 的 GracefulHandler 类替代了原有的 StatisticsHandler,以协调 Jetty 的优雅关闭过程。Spring Framework 7.1.0 的新版本在 ResolvableType 类中新增了 forParameter() 便捷工厂方法,并在 ParameterResolutionDelegate 类中支持自定义参数名。Spring Data 子项目方面,Spring Data Commons 升级至 4.2.0-M1,Spring Data MongoDB 升级至 5.2.0-M1,Spring Data Elasticsearch 升级至 6.2.0-M1,Spring Data Neo4j 升级至 8.2.0-M1,并新增了 RedisJsonTemplate 以支持 Redis JSON。

Spring Security 7.2.0 的里程碑版本增强了 XML 命名空间中 CorsConfigurationSource 与 PreFlightRequestHandler 的能力,使其与类 CorsConfigurer 的检测逻辑保持一致。此外,OneTimeTokenAuthenticationProvider 类增加了在授权账户前的预认证检查。Spring Integration 7.2.0 更新了 JdbcMetadataStore 的 putIfAbsent() 方法,使其在现存行的 METADATA_VALUE 列为 null 时返回 null,并修复了已弃用的 RestTemplate HTTP 出站网关配置问题。Spring Modulith 2.2.0 则在 spring-modulith-events-core 模块中引入了 Namastack 版本属性,并移除了 moments、events 与 observability 模块中旧的 spring.factories 自动配置注册方式。

影响分析

对于中文开发者而言,此次 Spring 生态的大规模里程碑发布意味着技术栈的维护重点正在向更现代化的架构转移。分析认为,引入 AMQP 1.0 支持和 Redis JSON 模板,表明 Spring 生态正在加强对新兴消息协议和非结构化数据存储的标准支持,这为构建高性能、可扩展的微服务系统提供了更基础的构件。开发者在升级至这些里程碑版本时,需特别注意破坏性变更。例如,Spring Framework 中 ResolvableType 和 ParameterResolutionDelegate 的变更可能影响依赖反射机制的第三方库,需重新评估兼容性。

安全修复是本次更新对从业者的另一大影响。超过 90 个 CVE 的修复,特别是涉及 Java 反序列化 RCE(远程代码执行)和敏感信息泄露的漏洞,要求企业立即审查依赖版本。对于使用 Spring Integration 和 Spring AMQP 的金融、电商等高安全性要求系统,升级至包含这些修复的 4.2.0 或 7.2.0 里程碑版本(或其对应的稳定版)是降低攻击面的必要操作。此外,Spring Batch 6.1.0 对 Spring Framework 7.1.0 的强依赖提示,说明版本耦合性较高,开发者在升级 Batch 任务时,必须同步升级底层的 Framework、Integration、AMQP 和 Kafka 组件,否则可能导致运行时错误。

适用边界

上述结论基于源码和发布说明,仅适用于计划迁移至 Spring Boot 4.2 或 Spring Framework 7.1 技术栈的项目。对于仍维护在 Spring Boot 2.x 或 3.x 稳定版且无重大安全漏洞风险的项目,强行升级至里程碑版本(M1)是不适用的,因为里程碑版本主要面向开发者和早期尝鲜者,包含未稳定 API 和潜在破坏性变更。此外,本文分析的安全修复主要涵盖 Spring Integration 和 Spring AMQP 的特定 CVE,其他 90 多个 CVE 的具体影响范围需查阅 Spring Security Advisories 页面,不能简单推断为所有 Spring 项目均受同等影响。若项目未使用 JdbcMessageStore 或 JSR-223 脚本引擎,则 CVE-2026-59307 和 CVE-2026-59321 的修复对其直接业务逻辑影响较小。

孤本观察

Spring 生态在停滞 10 周后突然集中发布十余个项目的里程碑版本,显示其发布节奏可能已从“持续滚动更新”转向“集中批量交付”,这种策略虽利于版本对齐,但也增加了开发者一次性迁移的复杂性。从编辑视角判断,RedisJsonTemplate 的引入预示 Spring Data 层正在标准化 NoSQL 多格式支持,未来 JSON 处理可能成为 Spring 数据访问层的默认能力之一,值得在架构设计中提前布局。

Spring 生态多项目同步发布首个里程碑版本,修复超过 90 个安全漏洞

Spring 生态多项目同步发布首个里程碑版本,修复超过 90 个安全漏洞

Spring 生态多项目同步发布首个里程碑版本,修复超过 90 个安全漏洞

Spring 生态多项目同步发布首个里程碑版本,修复超过 90 个安全漏洞

Spring 生态多项目同步发布首个里程碑版本,修复超过 90 个安全漏洞

常见问题

Spring Boot 4.2.0-M1 新增了哪些具体功能支持?

新增了对 AMQP 1.0 规范的支持,并引入 Eclipse Jetty 的 GracefulHandler 实现优雅关闭,替代了原有的 StatisticsHandler。

Spring Integration 修复的 CVE-2026-59307 漏洞具体原理是什么?

源于 JdbcMessageStore 类的 addAllowedPatterns() 方法存在逻辑缺陷,允许攻击者利用 Java 反序列化实现远程代码执行。

升级 Spring Batch 6.1.0-M1 对底层依赖版本有什么特定要求?

要求使用 Spring Framework 7.1.0-M1 和 Spring Integration 7.2.0-M1 等最新里程碑版本,开发者必须同步升级相关组件。

Spring Data 2026.1.0-M1 在 Redis 数据格式支持上有什么新变化?

引入了 RedisJsonTemplate 类,为 Redis JSON 数据格式提供初步支持。

来源:InfoQ 中文 AI


评论