扫描漏洞结果中提示Java应用依赖库版本存在风险问题
问题原因一:
镜像扫描功能在扫描Java应用镜像时,会尝试扫描Java应用依赖库,当应用依赖的库包含存在风险问题的库版本时,会在漏洞扫描结果中进行提示。
解决方法:
请检查应用通过Maven等库管理工具引入的依赖库版本,如POM文件中是否定义使用了问题版本依赖库的坐标。若在应用POM文件中没有找到定义,需要检查是否由某些依赖库间接依赖引入问题版本依赖库导致。
问题原因二:
镜像扫描功能在扫描Java应用镜像时,会尝试扫描Java应用依赖库,当应用依赖的库通过Shade方式依赖存在风险问题的其他库版本时,会在漏洞扫描结果中进行提示。
解决方法:
建议通过全局查找方式定位问题版本依赖库。以io.netty为例,当您引入的库坐标为以下时。
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<version>1.24.0</version>
</dependency>
实际上这个依赖库会通过Shade方式包含io.netty的4.1.38.Final版本,这时您在POM中定义引入更高版本的io.netty时,依然会扫描出问题版本依赖库。类似情况请检查您引入的依赖库中是否通过Shade方式包含了问题版本依赖库。更多关于依赖库JAR包Shade的机制,请参见Apache Maven Shade Plugin。
文档内容是否对您有帮助?