产品派
返回

Radicle披露协议漏洞,私有仓库或被明文窃取

开源InfoQ 中文站2026/10/12 11:04:02
AI 导读

点对点代码协作网络 Radicle 披露,其核心网络协议存在两项安全缺陷,影响迄今所有节点版本。网络路径上的攻击者可能直接读取私有仓库数据,还能冒充白名单中的节点。由于协议没有版本协商机制,现有网络层无法通过兼容补丁修复,维护者建议在重大架构改造完成前暂停明网私有仓库运行。

漏洞位于负责节点同步的 radicle-node。它使用基于原始 TCP 套接字的三消息 Noise XK 握手,双方交换临时密钥和长期公钥,并通过“拆分”生成两个对称会话密钥。但握手结束后,加密状态会被立即丢弃,生成的密钥则以明文保存在内存中,后续 Gossip 元数据、路由表以及 Git 对象包均直接通过未加密 TCP 传输。

连接还存在身份校验缺陷:攻击者可提交与白名单节点关联的伪造节点 ID 建立连接。窃听者先被动获取明文传输的有效 ID,再利用该缺陷冒充授权节点,从种子节点拉取私有仓库。问题根源在 Rust 库 Heartwood 的架构差异:网络状态机处理了 Noise 握手,但帧分发层在写入数据时绕过了加密逻辑。

对本地守护进程流量的检查显示,握手后的帧没有身份认证标签或流密码,仅以 Radicle 协议魔术字节开头,随后就是未加密的 Git 压缩文件头。Git 对象的内容寻址和引用签名仍能阻止攻击者悄然篡改仓库,但无法保护传输机密性,也无法阻止数据被记录或重排。

使用明网克隆、推送或分发私有仓库的团队,应将相关数据视为已经泄露,并立即轮换其中的令牌、凭据和生产密钥。修复版本发布前,节点应限制在隔离覆盖网络内,可通过授权主机间的 WireGuard 隧道或 SSH 端口转发承载同步,例如将 8776 端口转发到本地回环地址。仅设置全局代理指向 Tor 出口节点并不安全,因为出口到互联网的流量仍是明文;只有全程使用经过认证的 Tor 洋葱服务或 I2P 守护进程,才能保持点对点机密性。

维护者计划彻底弃用自定义 Noise 传输层,改用基于 QUIC 和 TLS 的开源点对点协议栈 Iroh。由于现有握手帧没有协议版本协商字段,直接加入加密组帧补丁会导致连接崩溃。迁移将打破向后兼容性,发布新大版本后,旧版 1.x 节点与升级节点之间预计会形成硬性网络分区。

网络安全RadicleGitRust点对点协议

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文