CVE-2026-22816CVE-2026-22816是Gradle构建工具中的一个高危安全漏洞,CVSS评分7.4。漏洞存在于Gradle 9.3.0之前的版本中,当解析依赖时,某些异常情况不会被视为致命错误,导致问题仓库不会被禁用。具体而言,如果构建过程中遇到无法解析的主机名(例如仓库域名过期或拼写错误),Gradle会继续尝试从配置列表中的其他仓库解析依赖。这种设计缺陷可能被恶意利用:攻击者可以注册与过期或拼写错误仓库域名相同的服务,在构建过程中劫持依赖解析流程,向受害者提供恶意构建工件。由于攻击需要问题仓库在其他仓库之前列出,且攻击者需要控制相关域名,因此属于需要特定条件的供应链攻击。Gradle在9.3.0版本中已修复此问题,遇到此类错误时将停止搜索其他仓库。
该漏洞的核心问题在于Gradle依赖解析器的错误处理机制存在缺陷。当Gradle解析依赖时,如果某个仓库返回可捕获的异常(如DNS解析失败、连接超时等),系统不会立即标记该仓库为不可用,而是继续尝试后续配置的仓库。这种容错设计在正常场景下提供了便利,但在供应链安全层面存在严重风险。攻击者可以通过以下方式利用:1)监控目标组织使用的Gradle构建配置;2)识别配置中列出的但域名已过期或可能拼写错误的仓库域名;3)注册该域名并部署恶意仓库服务;4)当目标进行构建时,Gradle会按顺序尝试仓库,遇到恶意仓库时可能会使用其中的恶意工件。由于Gradle默认不验证工件来源的完整性和真实性,恶意代码可能被直接引入构建流程。此漏洞的利用需要攻击者具备域名抢注能力和对目标构建配置的深入了解,属于定向攻击场景。修复方案是在遇到致命异常时立即停止仓库遍历,而不是继续尝试其他仓库。