CVE-2026-22865CVE-2026-22865是Gradle构建自动化工具中的一个高危安全漏洞,存在于9.3.0之前的版本。该漏洞的核心问题是Gradle在解析依赖时,某些异常情况不会被视为致命错误,导致不会触发仓库禁用机制。当构建过程中遇到如NoHttpResponseException等异常时,Gradle会继续尝试下一个仓库进行依赖解析。这种设计缺陷可能被恶意攻击者利用,通过持续干扰或阻断合法仓库的服务,迫使用户的Gradle构建回退到攻击者控制的恶意仓库,从而获取恶意构件。攻击成功的前提条件是攻击者已经控制了排在被干扰仓库之后的某个仓库。由于CVSS评分达到7.4分,该漏洞对使用Gradle进行软件构建的企业和个人开发者构成严重安全威胁。Gradle官方已在9.3.0版本中修复了此问题,改变了遇到此类错误时的默认行为。
Gradle的依赖解析机制在处理网络异常时存在设计缺陷。在受影响版本(9.3.0之前)中,当Gradle连接仓库时遇到NoHttpResponseException等网络异常,系统仅会进行重试而不会立即将问题仓库标记为不可用。经过最大重试次数后,Gradle会静默切换到下一个配置的仓库继续依赖解析。这种行为违背了安全设计原则,因为用户通常按照可信度排序配置多个仓库(如先配置内部私有仓库,再配置Maven Central等公共仓库)。攻击者可以通过以下方式利用此漏洞:首先,攻击者对目标仓库(如Maven Central镜像)发起拒绝服务攻击或制造网络中断;其次,Gradle构建在多次重试失败后自动切换到攻击者预先控制的恶意仓库;最后,恶意仓库返回包含后门、恶意代码或被篡改的依赖包。由于Gradle通常以高权限运行且会缓存依赖,恶意构件可能长期存在于本地仓库缓存中。建议用户立即升级到Gradle 9.3.0或更高版本以获得完整保护。