如何修复maven传递依赖maven:org.yaml:snakeyaml的漏洞?需额外插件吗?
修复传递依赖snakeyaml的CVE漏洞问题
问题核心
你碰到的是传递依赖漏洞:snakeyaml:1.30是通过spring-boot-starter-web间接引入的,直接修改spring-boot-starter-web的版本不一定能覆盖这个传递依赖的版本——部分Spring Boot Starter版本可能仍绑定旧版snakeyaml。
正确修复步骤
1. 直接在pom.xml中锁定snakeyaml的安全版本
在你的pom.xml里添加独立的dependency节点,强制使用修复了上述所有CVE的版本(比如1.33或更高,官方已在这些版本完成漏洞修复):
<dependencies> <!-- 其他项目依赖 --> <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.33</version> </dependency> </dependencies>
Maven会优先使用你显式声明的版本,自动覆盖传递依赖带来的旧版。
2. 用Spring Boot依赖管理统一控制(推荐)
如果是Spring Boot项目,更规范的方式是在dependencyManagement中声明版本,确保整个项目所有模块都使用同一安全版本:
<dependencyManagement> <dependencies> <!-- 其他依赖管理配置 --> <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.33</version> </dependency> </dependencies> </dependencyManagement>
3. 验证修复效果
在IntelliJ里右键点击pom.xml → Maven → Show Dependency Tree,搜索snakeyaml,确认其版本已更新为你指定的安全版本。
IntelliJ工具与插件建议
- 自带工具足够基础排查:IntelliJ默认的Maven依赖树功能(如上)能帮你定位依赖来源;另外在
Settings→Build, Execution, Deployment→Build Tools→Maven→Dependency Analyzer中,可直观查看依赖冲突和基础漏洞提示。 - 推荐实用插件:
- OWASP Dependency-Check:可集成到Maven流程,自动扫描依赖的已知漏洞并给出修复建议,能在IntelliJ插件市场安装对应IDE插件,也可直接在
pom.xml中配置Maven插件。 - SonarLint:实时检测代码和依赖的安全问题,包括依赖漏洞,开发过程中就能及时收到提醒。
- Checkmarx IDE Plugin:和你使用的Checkmarx扫描工具联动,直接在IDE内查看、修复漏洞。
- OWASP Dependency-Check:可集成到Maven流程,自动扫描依赖的已知漏洞并给出修复建议,能在IntelliJ插件市场安装对应IDE插件,也可直接在
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

