【CSDN 编者按】对于软件中存在的漏洞 , 工程师一般会优先修复那些影响用户数多的漏洞 , 比如导致服务器死机的漏洞 。 但一些特殊情况下才会出现且的漏洞 , 不易被人发现 , 就会长时间存在 。 本文就介绍了作者发现了GitHub上不易察觉的安全漏洞 , 通过这个漏洞可以窃取GitHub Actions上的敏感信息 , 并且作者还尝试用不同方法来触发漏洞看看还是否存在其他漏洞 。 一起来看看吧 。
原文链接:https://blog.teddykatz.com/2022/02/23/ghosts-of-branches-past.html
译者 | 章雨铭 责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
不久前 , 我在GitHub中发现的一个安全漏洞 , 这个漏洞会让攻击者获得对几乎所有公共库的写入权限 。 下面是简单回顾 。
- GitHub上的每个拉取请求都有一个 "基分支" , 也就是与拉取请求相同的库中的一个git分支 。
- GitHub Actions有时会执行拉取请求的基分支的代码 , 使代码能够访问库的敏感信息 。 (具体来说 , 如果基分支有一个 pull_request_target 工作流 , 就会发生这种情况) 。 这通常是安全的 , 因为任何可能推送到基分支的人都可以直接写到库 。
- 由于一时疏忽 , 用户将其拉取请求的"基分支"名称设置为commit hash , 而不是一个真正的分支 。
- 因此 , 攻击者可以从fork中创建一个拉取请求 , 然后将"基分支"改为commit hash , 在攻击者的fork中的恶意commit 。 由于commit hash在fork中是共享的 , GitHub Actions会执行这个恶意commit的代码 , 使其能够访问父存储库及其敏感信息 。
Git、GitHub和异常的分支名称
去年夏天 , 我观察了git和GitHub对异常的分支名的表现 。
【窃取任意GitHub Actions敏感信息如此简单,只需要分支改个名?】在某些地方 , git CLI允许使用分支或commit hash 。 例如 , 要切换到一个叫 my-branch的分支 , 下面这个就可以使用 。
另一方面 , GitHub返回了一个错误:[1]
和分支同名的短hash
总结一下上一节的内容:
- 我们在GitHub库中有一个commit , 其短hash为 a047be8。
- 再推送一个名为 a047be8 的分支到同一个库 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
