GitHub惊天安全漏洞:删除的仓库竟能永远访问

引言

近日,GitHub 被曝出一个严重的安全漏洞,引发了广泛关注。开源安全软件公司 Truffle Security 的安全研究员 Joe Leon 发现,在 GitHub 上删除的代码仓库实际上仍然可以被访问。这一发现震惊了整个开源社区。本文将详细探讨这一安全漏洞的发现过程、其技术细节及其对 GitHub 用户的影响。

发现过程

在 Joe Leon 的研究中,他发现当用户在 GitHub 上删除一个 fork 的仓库时,实际上提交到该仓库的数据仍然可以被访问。这一问题的严重性在于,即便原始仓库被删除,fork 仓库的提交数据也仍然存在,且可以通过提交的哈希值来访问。

具体操作步骤

  1. 用户 fork 一个公共仓库。
  2. 用户向 fork 仓库提交数据。
  3. 用户删除 fork 仓库。

尽管用户认为这些数据已经被删除,但实际上仍可以通过原始仓库访问这些数据。这意味着,删除操作在数据保护方面实际上是无效的。

技术细节

GitHub 的这一问题源自于其处理删除仓库的方式。当用户删除一个仓库时,GitHub 只是删除了仓库的引用,但提交的数据仍然保存在其底层存储中。更令人担忧的是,任何人只要知道提交的哈希值,就可以访问这些提交的数据。

CFOR(Cross Fork Object Reference)漏洞

Truffle Security 引入了一个新的安全术语 CFOR(Cross Fork Object Reference)来描述这一漏洞。CFOR 意味着当一个仓库 fork 可以访问另一个 fork 中的敏感数据时,就会出现这种漏洞。用户只需要提供 commit 的哈希值,就可以直接访问提交的数据。

SHA-1哈希暴力破解

GitHub 允许使用短 SHA-1 值来引用提交,而短 SHA-1 值最小为 4 个字符。由于 4 个字符的 SHA-1 值只有 65,536 种可能性,这使得暴力破解这些值变得相对容易。一旦破解了哈希值,用户就可以访问到相关的提交数据。

案例研究

研究人员在一段视频中展示了如何利用这一漏洞。他们 fork 了一个仓库,提交数据后删除了 fork 仓库,结果仍然可以通过原始仓库访问“已删除”的数据。更令人担忧的是,研究人员在一家大型 AI 公司的 3 个经常被 fork 的公共代码仓库中,轻松找到了 40 个有效的 API 密钥。

GitHub 的回应

GitHub 将 CFOR 视为一种设计特性,而非漏洞。他们认为这是有意为之的设计,符合其预期。GitHub 的官方文档也描述了这种行为。这一回应引发了广泛争议,因为这种设计显然存在安全隐患。

平台的处理方式

虽然悬空提交是 git 中的一个概念,并不属于 GitHub 的功能,但每个平台对于悬空提交的处理方式是不同的。Bitbucket、GitLab 和 GitHub 都保留这些提交,只要用户掌握了标识符就可以访问这些数据。

影响和建议

这一安全漏洞对使用 GitHub 的企业和个人用户构成了严重的安全隐患。他们的机密数据可能会无意中暴露在组织的公共 GitHub 仓库中。为了防止数据泄露,Truffle Security 建议用户在发现提交了敏感信息后,应立即更换密钥,而不是仅仅删除相关的仓库或引用。

总结

GitHub 的这一设计特性暴露了其在数据删除和保护方面的重大缺陷。尽管 GitHub 将其视为功能,但这一漏洞显然需要引起重视。希望 GitHub 能重新考虑其立场,为用户提供更安全的数据保护机制。

未来展望

未来,GitHub 或其他代码托管平台可能需要引入新的功能,以允许用户永久删除提交的数据,并确保 fork 之间的数据隔离。同时,用户在使用这些平台时也需要更加谨慎,避免提交敏感信息。
在这里插入图片描述

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值