昨天,GitHub 通过使 GitHub.com 网站会话无效化的方式自动登出了许多用户的账号,以保护用户账户免受潜在的严重安全漏洞影响。
在本月早些时候,GitHub 就收到一份来自外部的异常行为报告。异常行为源于一个罕见的竞争条件(race condition)漏洞,即 GitHub 用户的登录会话会被误传到另一个已登录用户的 Web 浏览器上,使后者获得了前一个用户账户的认证会话 cookie 并获得访问权限。
GitHub 因 bug 登出用户账号
从昨天起,GitHub 陆续登出了所有在 UTC 时间 3 月 8 日 12:03 分之前登录的用户账号。
这一步骤是在该公司在收到了来自外部关于 GitHub.com 可疑行为的初步报告后近一周时间才采取的。
Github 在安全公告中写道:"3月2日,GitHub 收到外部报告,称其认证的网站用户会话存在异常行为。收到报告后,GitHub 安全和工程部立即开始调查,以了解这个问题在 GitHub.com 网站上出现的根本原因、影响和普遍性"。
3月5日星期五,GitHub 团队对该安全漏洞进行了修复,并在周末继续进行分析。此外,昨天将所有会话无效化是修补该漏洞的最后一步。
根据 GitHub 的说法,该漏洞可能会在极其罕见的情况下被利用,即在后台请求处理过程中出现竞争条件。在这种情况下,一个已登录的 GitHub 用户的会话 cookie 会被发送到另一个用户的浏览器中,使后者能够访问前者的账户。
GitHub 首席安全官 Mike Hanley 表示:"需要注意的是,这个问题并不是用户账户密码、SSH 密钥或个人访问令牌(PAT)泄露所导致的结果,同时也没有证据表明这些信息曾从 GitHub 系统中所泄露。相反,这个问题是由于罕见的、孤立的对认证会话的不当处理所造成的。此外,这个问题也不是由恶意用户故意触发或定向所引起的"。
受影响的认证会话占比不到 0.001%。
GitHub 表示,网站上的底层 bug 累计存在了不到两周的时间。在找到初步原因后,他们在 3 月 5 日就修复了该问题,并在 3 月 8 日发布了第二个补丁,以进一步加强网站的安全性。
这就是导致网站在 UTC 时间 3 月 8 日中午将所有活跃的登录会话无效化的原因。
没有证据表明 GitHub 的其他资产或产品(如 GitHub 企业服务器)因这一错误而受到影响。
Hanley 在公告中说道:"我们认为,这个会话的不当处理发生在网站上不到 0.001% 的已认证会话中"。
虽然我们外部人员无法确认这个 bug 的具体影响范围,但考虑到 GitHub 在一个月内有超过 3200 万的活跃访客(无论是否经过认证),0.001% 的认证会话也意味着可能超过数万个账户受到影响。
此外,Github 还没有对是否有任何项目仓库或源代码因为这个漏洞被恶意篡改等问题做出回应。像这样的漏洞如果被不法分子利用,就会为秘密的软件供应链攻击铺平道路。
本文转自OSCHINA
本文标题:GitHub 修复了导致用户登录其他账户的错误
本文地址:https://www.oschina.net/news/132506/github-fixes-bug-causing-users-to-log-into-other-accounts