有一个springboot项目,其中希望排除snakeyaml 1.30或将其升级到1.31,以避免强化问题报告
snakeyaml1.30版本存在安全漏洞
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
</parent>
下面是该项目的有效pom.xml
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.30</version>
<scope>compile</scope>
</dependency>
有没有可能像补救措施所说的那样升级到snakeyaml 1. 31版本?
参考:https://security.snyk.io/vuln/SNYK-JAVA-ORGYAML-2806360
4条答案
按热度按时间2nbm6dog1#
SnakeYAML是Sping Boot 中的managed dependency,因此您只需将以下内容添加到
pom.xml
的properties
部分,即可使Spring Boot 2.3.7使用SnakeYAML 1.31而不是1.30:olhwl3o22#
您始终可以通过
pom.xml
中的<dependencyManagement>
块更改版本号:这将自动改变你的项目将使用的版本。你可以通过运行
mvn dependency:tree
测试。它应该只显示snakeyaml的1.31版本。**重要说明:**请确保在集成下一版本的Sping Boot 后立即删除此块,因为它很可能包含升级版本。否则,在将来更新后,您可能会无意中降级版本。
另外请注意,某些lib版本和Sping Boot 之间可能存在不兼容性,因此并不总是能够以这种方式更新版本。
5f0d552i3#
如果您使用的是
gradle
,下面的答案与您相关。您可以简单地覆盖spring Boot 使用的版本:使用
io.spring.dependency-management
插件,它将自动从您正在使用的Sping Boot 版本导入spring-boot-dependencies
物料清单。完成后,您可以通过设置相应的属性来自定义spring正在使用的版本:
要查看要覆盖的依赖项版本及其属性的完整列表,请浏览此处:
https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html#appendix.dependency-versions.properties
现在,当运行
./gradlew dependecies
时,您可以看到org.yaml.snakeyaml
已升级到v1.32:型
此答案基于v2.7.3的spring文档,可在此处找到:https://docs.spring.io/spring-boot/docs/2.7.3/gradle-plugin/reference/htmlsingle/
yebdmbv44#
我从我的网络应用程序中排除了snakeyaml依赖项,它们工作得很好。当然我使用的是
application.properties
,而不是application.yml
。