Py学习  »  Git

【安全圈】GitHub高危漏洞可劫持其他用户的库

安全圈 • 3 年前 • 545 次点击  

关键词

GitHub

研究人员发现GitHub存在库劫持漏洞,攻击者利用该漏洞可接管其他用户的库。


GitHub库在创建库的用户账号下有唯一的URL。当其他用户想要下载或复制该库时,会使用到该库的完整URL。

库劫持


库劫持(RepoJacking)是指通过利用逻辑漏洞破坏原始重定向过程,实现劫持修改了用户名的URL的流量并重定向到攻击者库的过程。研究人员在GitHub中发现了一个库劫持漏洞,当创建者决定修改其用户名,而老的用户名可以用于注册时就会出现可劫持库的情况。


从GitHub库名与创建者用户名之间的关系可以看出,GitHub可以创建一个新的GitHub账户与现有用户使用的老库URL一致。

此时,默认的重定向就被禁用了,所有现有流量都会立刻路由到攻击者的恶意GitHub库。 


GitHub应对方法


为应对此类行为,GitHub实施了流行库命名空间退出(popular repository namespace retirement)保护策略:超过100个clone的库在用户账户修改时会会被标记为退出(retired)状态,无法被其他人使用。比如,repo库被clone超过100次,用户名“account-takeover-victim”就无法再创建名为repo的库:

绕过GitHub保护


研究人员进一步分析发现GitHub提出的应对保护措施可以被绕过。新的绕过方法使用了“Repository Transfer”特征,具体步骤如下:


“victim/repo”是受GitHub retirement保护的GitHub 库,

“helper_account”账户创建了repo库;

“helper_account”将repo库的所有权转给了“attacker_account”;

“attacker_account”将其用户名重命名为“victim”。

新的“victim”账号实际上就是之前的“attacker_account”,会接受所有权的转移。

victim/repo”就会被攻击者控制。


攻击者成功利用该漏洞可以控制主流的包管理器的代码包,包括“Packagist”、“Go”、“Swift”等。研究人员发现有超过1万个重命名的包受到该漏洞的影响。此外,攻击者利用该漏洞还可以发起供应链投毒攻击。


2021年11月8日,研究人员将GitHub命名空间退出特征绕过方法提交给了GitHub。2022年3月,GitHub回复称已修复该绕过。5月,研究人员发现该漏洞仍然是可利用的,5月25日,GitHub修复该问题。6月,研究人员发现了绕过GitHub命名空间退出特征保护机制的绕过方法,并报告给了GitHub。9月19日,GitHub修复该漏洞,并将该漏洞分类为高危。


来源:ROARTALK

   END  

阅读推荐

【安全圈】这两人可真“刑”!两男子泄露18万条个人信息被判刑

【安全圈】三星 Galaxy Store 漏洞或让黑客在目标设备上秘密安装应用程序

【安全圈】400万美元可以买到全球576个企业网络访问权限

【安全圈】台湾 2300 万人民信息泄露,黑客开价5000美元



安全圈

←扫码关注我们

网罗圈内热点 专注网络安全

实时资讯一手掌握!

好看你就分享 有用就点个赞

支持「安全圈」就点个三连吧!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/149030