领先一步
VMware 提供培训和认证,助您加速进步。
了解更多Spring 整个产品组合中的任何潜在安全漏洞都应通过安全通告页面报告。
Spring 团队需要通过 GitHub 的私下报告安全漏洞功能接收潜在安全漏洞的报告。为了简化流程,使用 spring-projects/security-advisories 仓库来报告 Spring 产品组合中任何项目(包括其他 GitHub 组织中的项目,例如 Spring Cloud)的潜在漏洞。
所有安全漏洞都发布在 https://springframework.org.cn/security/。
如果您认为发现了安全漏洞,请按照如何报告潜在的安全漏洞中的描述进行报告。下面,您可以查看漏洞示例和非漏洞示例。
有关漏洞示例,请参阅https://springframework.org.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 版本发布之前覆盖该版本。