研究人员声称任何人都可以访问已删除的私人GitHub存储库数据

网络安全研究人员发现了GitHub的一个设计缺陷,该缺陷允许访问已删除和私有的存储库数据。了解这个被称为Cross Fork Object Reference(CFOR)的问题如何将敏感信息置于风险之中,以及它对开源安全意味着什么。

开源安全软件公司Truffle Security的网络安全研究人员发现,任何人都可以访问GitHub上已删除的和私有的存储库数据,并且这些数据永久可用。

该问题被称为跨分叉对象引用(CFOR),它允许用户直接访问来自另一个分叉的提交数据,包括来自私有分叉和已删除分叉的数据。

据Truffle Security称,这不是一个错误,而是GitHub存储库架构的一个有意设计功能。这意味着,提交到公共存储库的任何代码都可以永久访问,即使原始存储库被删除,只要该存储库至少有一个分支。

研究人员演示了可以利用该问题的三种场景:

1. 访问已删除的分支数据:当用户分支公共存储库、向其提交代码,然后删除分支时,已提交的代码仍可永久访问。这是因为GitHub将存储库和分支存储在存储库网络中,删除分支不会删除已提交的数据。

2. 访问已删除的仓库数据:删除公共仓库后,GitHub会将根节点角色重新分配给下游分支之一。这意味着原始仓库的所有提交仍然存在,并且可以通过任何分支访问,即使分支从未与原始仓库同步。

3. 访问私有存储库数据:当私有存储库开源时,在创建内部分支和存储库公开之间提交的任何代码都可以在公共存储库上访问。这是因为私有分支和公共存储库是同一存储库网络的一部分。

要访问数据,攻击者只需知道提交哈希https://github.com///commit/,该哈希可以通过GitHub的UI进行暴力破解,也可以通过公共事件API端点获取。这意味着机密数据和秘密可能会在组织的公共GitHub存储库中无意中暴露。

Truffle Security通过漏洞披露计划向GitHub提交了题为“任何人都可以访问GitHub上已删除和私有的存储库数据”的报告,GitHub对此回应称,他们的架构就是为此设计的。尽管GitHub对其架构非常透明,但普通用户可能并不了解这种设计的含义,删除行为并不一定意味着数据被删除。

Truffle Security建议用户采取措施,通过密钥轮换安全地修复公共GitHub存储库中泄露的密钥。他们还指出,需要更新秘密扫描工具来处理这些情况,并且用户应该意识到已删除的数据可能仍然可以访问。

此问题并非GitHub独有,其他版本控制系统产品也可能受到影响。随着开源软件的使用不断增长,用户必须了解这些系统如何运作的安全隐患。

发表评论

评论已关闭。

相关文章