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