Gradle OWASP DependencyCheck插件未检测到CVE-2022-42889
我的build.gradle配置如下:
plugins { ... id 'org.owasp.dependencycheck' version '7.3.0', ... } ext { ... okHttpVersion = '4.9.3' ... } repositories { mavenCentral() } dependencies { implementation( ... //misc 'org.testcontainers:junit-jupiter:1.16.3', 'org.everit.json:org.everit.json.schema:1.5.1', 'com.github.therapi:therapi-runtime-javadoc:0.13.0', 'org.apache.commons:commons-text:1.9.0', //存在CVE-2022-42889漏洞 "com.squareup.okhttp3:okhttp:$okHttpVersion", "com.squareup.okhttp3:mockwebserver:$okHttpVersion", ... ) ... }
执行./gradlew dependencyCheckAnalyze生成的报告中,未提及org.apache.commons:commons-text:1.9.0存在的CVE-2022-42889漏洞。已尝试执行./gradlew dependencyCheckPurge、./gradlew dependencyCheckUpdate后重新分析,结果仍无变化。
解决方法
升级OWASP DependencyCheck插件版本
7.3.0版本可能未完全适配CVE-2022-42889的检测规则,该CVE于2022年10月披露,建议将插件版本升级至7.4.0及以上(如7.4.4等稳定版本),修改plugins块中的版本号后,重新执行./gradlew dependencyCheckAnalyze。确认依赖是否实际引入
执行./gradlew dependencies命令,检查implementation依赖树中是否存在org.apache.commons:commons-text:1.9.0,避免依赖被隐性排除或未真正加入项目依赖。排查NVD数据更新情况
执行./gradlew dependencyCheckUpdate --info查看更新日志,确认NVD漏洞库是否成功更新到包含CVE-2022-42889的版本。若更新过程存在网络或权限报错,需解决后重新触发更新。检查扫描排除规则
查看项目中是否存在dependencyCheck自定义配置块,确认是否设置了excludeGroups或excludeArtifacts参数排除了org.apache.commons相关依赖,若有则移除对应排除规则。手动验证本地漏洞库
查看本地DependencyCheck数据存储目录(默认路径为~/.gradle/dependency-check/data),确认其中是否包含CVE-2022-42889的条目。若不存在,可删除该数据目录后重新执行./gradlew dependencyCheckUpdate,强制拉取完整漏洞库。
内容的提问来源于stack exchange,提问作者talgat-aitchanov

