社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

安全圈 • 1 年前 • 250 次点击  

关键词

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
 
250 次点击