领先一步
VMware 提供培训和认证,助您加速进步。
了解更多Spring 整个产品组合中的任何潜在安全漏洞都应通过安全通告页面报告。
Spring 团队需要通过 GitHub 的私下报告安全漏洞功能接收潜在安全漏洞的报告。为了简化流程,使用 spring-projects/security-advisories 仓库来报告 Spring 产品组合中任何项目(包括其他 GitHub 组织中的项目,例如 Spring Cloud)的潜在漏洞。
所有安全漏洞都发布在 https://springjava.cn/security/。
如果您认为发现了安全漏洞,请按照如何报告潜在的安全漏洞中的描述进行报告。下面,您可以查看漏洞示例和非漏洞示例。
有关漏洞示例,请参阅https://springjava.cn/security/。
Spring 团队的立场是,要将反序列化视为 Spring 中的漏洞,Spring 必须将来自不受信任的源(即 HTTP 参数)的数据传递给以产生 CVE 的方式执行反序列化的方法。之所以采取这种立场,是因为任意类型的反序列化是必要的,但无法使其安全。
Spring 为开发人员提供了必要的工具,但开发人员有责任安全地使用它们。这与其他任何库或 JDK 本身没有区别。如果开发人员将来自 HTTP 请求的不受信任的数据传递给 ProcessBuilder,那么这不是 JDK 中的 CVE,而是在错误使用了 ProcessBuilder 的应用程序中的 CVE。如果开发人员使用不受信任的数据通过字符串拼接来创建 SQL 查询,这不是 SQL 驱动程序中的 CVE,而是应用程序中没有使用预编译 SQL 语句的 CVE。类似地,如果开发人员将不受信任的数据传递到反序列化方法中,则需要由开发人员确保这样做是安全的。
Spring 依赖项中的漏洞应报告给相应的项目,而不是 Spring 团队。
无论依赖项是否包含漏洞,Spring 团队都尽最大努力保持其依赖项更新。但是,当 Spring 定义了存在漏洞的依赖项版本时,我们不将其视为 Spring 中的漏洞,因为开发人员可以覆盖这些版本,并且为任何传递性依赖项发布版本对于 Spring 产品组合来说将无法管理。
依赖项的开发人员有责任发布兼容的安全修复版本。如果提供了该版本,Spring 项目将在发布 Spring 项目的下一个版本之前更新到该依赖项版本。
通常,不会为更新依赖项版本进行特殊发布。相反,Spring 团队鼓励开发人员在下一个 Spring 版本发布之前覆盖该版本。