Maven引入rest-assured遇commons-codec依赖漏洞警告的解决咨询
依赖安全问题解答
1. 如何消除这个安全警告?
你需要通过Maven管控依赖,替换掉有漏洞的旧版commons-codec:
方法一:排除传递依赖+显式引入安全版本
在项目的pom.xml中,给rest-assured的依赖添加排除规则,去掉它自带的1.11版本commons-codec,再单独引入修复了漏洞的新版本(推荐用1.15及以上,这是目前验证过的安全版本):
<!-- rest-assured依赖,排除旧版commons-codec --> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>5.3.0</version> <scope>test</scope> <exclusions> <exclusion> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入安全版本的commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> <scope>test</scope> </dependency>
方法二:用dependencyManagement统一管控版本
如果项目里有多个依赖用到commons-codec,建议在dependencyManagement节点统一指定安全版本,Maven会自动替换所有传递依赖中的旧版本:
<dependencyManagement> <dependencies> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> </dependency> </dependencies> </dependencyManagement>
做完以上操作后,刷新Maven依赖,IntelliJ的安全警告就会消失。
2. 这个警告的具体含义是什么?
这个警告拆解来看:
- 依赖链问题:你直接引入的
io.rest-assured:rest-assured:5.3.0本身没有安全问题,但它会自动拉取(传递依赖)commons-codec:commons-codec:1.11,这个版本存在已知漏洞。 - 漏洞详情:漏洞编号为
Cxeb68d52e-5509,类型是敏感信息未授权泄露——简单说就是在特定的编码/解码场景下,这个版本的组件可能会把本应保密的数据(比如加密过程中的中间值、内部配置片段)泄露给未授权的攻击者。 - 风险等级:标注的3.7是临时风险参考值,对应中等风险,虽然正式CVSS评分还没分配,但这个漏洞确实存在被利用的可能,必须修复。
内容的提问来源于stack exchange,提问作者Federico Baù
相关产品推荐
相关产品推荐

