Gradle 9.8.1 修复了三个高危安全公告,涉及构建守护进程的通信通道。如果你的 CI 使用 Gradle,建议尽快升级。
三个问题
一、worker 到 daemon 的未认证通道上存在不可信 Java 对象的反序列化。
二、client 到 daemon 通信中,在认证之前存在不可信 Java 对象的反序列化。
三、SSL 连接失败后仓库仍保持启用状态,可能让构建暴露在恶意制品之下。
为什么前两条严重
反序列化不可信数据是很长一段时间里 Java 生态的高危类别。攻击者构造特定的字节序列,在反序列化过程中触发预期之外的类加载和方法调用,最终实现任意代码执行。
这里更麻烦的是发生在认证之前——意味着不需要任何凭据就能触达。在共享构建机、多租户 CI、或者开发者本机跑陌生人提交的代码这类场景下,攻击面是真实存在的。
第三条容易被忽略
SSL 失败后仓库仍启用,这是一个降级设计带来的问题:原本是为了在证书出问题时不让构建直接中断,但副作用是中间人可以把仓库请求导向自己。配合依赖解析,就能投喂恶意制品。
处置建议
一、升级到 9.8.1 或更高版本。
二、构建守护进程不要监听非本地地址,更不要暴露在 CI 网络的其他节点可访问的位置。
三、检查是否有自签证书或内部镜像仓库配置了宽松的 SSL 策略,这些配置在升级后可能直接导致构建失败,需要提前准备合规证书。
四、对构建产物做依赖完整性校验,不要只依赖传输层保护。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。