通告 ID: STREAMLIT-2021-001
Streamlit 安全通告
发布日期:2021 年 4 月 23 日 |
概述
2021 年 4 月 16 日,Streamlit 安全团队获悉 Streamlit Sharing 平台中存在一个潜在漏洞,该漏洞是由 3 月 15 日的代码更改引入的。经过彻底的内部分析以及与 GitHub 的合作,我们没有发现此期间存在未经授权活动的证据。我们已于 4 月 19 日修补了该漏洞,并采取了额外措施来保护我们的用户。
问题是什么?
在此期间,运行在 Sharing 平台上的经过特殊设计的 Streamlit 应用可以检查入站网络请求,反向工程解析 cookie,并获取应用查看者的 GitHub OAuth 令牌。这只会影响访问此类应用的 Sharing 平台开发者,且需他们在访问时已登录平台。
如果应用查看者不是 Sharing 平台开发者,则他们不受此漏洞影响。
GitHub OAuth 令牌可用于代表用户执行 GitHub 操作。通过令牌可执行的 GitHub 操作数量受用户授予的 OAuth 范围限制。Streamlit Sharing 平台遵循最小权限安全原则,仅请求平台功能严格必需的 OAuth 范围。有关 GitHub OAuth 范围的更多信息,请访问此链接。
如何发现的?
此漏洞由 Intelecy 的 Jonathan Camp 发现并负责任地向我们报告。
我们如何应对?
为缓解此安全漏洞,我们在 Sharing 平台的后端推出了代码更改,对平台上的敏感 cookie 进行了加密,从而使攻击者无法再检查或反向工程解析平台。我们还推出了代码更改,从发送给 Streamlit 应用的网络请求中剥离了所有可能暴露平台实现细节的敏感信息。最后,出于高度谨慎,我们撤销了与 Streamlit OAuth 应用关联的所有用户令牌,这使得攻击者窃取的任何令牌都失效。
我应该做什么?
目前,用户无需采取任何行动。下次访问 Streamlit Sharing 时,你需要通过 GitHub OAuth 同意流程重新授权你的账户。
如果你在 GitHub 账户中发现任何异常活动,请将其报告至 security@streamlit.io。
谁受到了影响?
经过彻底的内部分析以及与 GitHub 的合作,我们没有发现未经授权活动的证据。
此漏洞利用是否公开可用?
我们目前不知道有任何公开可用的漏洞利用。
已通知了谁?
一部分能够访问平台受限功能的 Beta 测试人员已于 2021 年 4 月 23 日收到通知。所有其他用户已于 2021 年 5 月 7 日收到通知。
我们如何防止此类问题再次发生?
在发生此事件之前,我们的安全团队已对 Streamlit Sharing 平台进行深入的技术审查和渗透测试,我们将在近期完成并根据审查结果采取行动。在事后回顾之后,我们更新了安全最佳实践手册,以确保我们更彻底地审查与会话管理和代码库其他敏感区域相关的代码更改。