Google 为 DevSite 未授权 RCE 漏洞支付 9 万美元赏金,但修复拖了两个月
来源The New Stack查看原文
速览
- Google DevSite 存在未授权 RCE,被评为最高 S0 级,赏金 9 万美元。
- 漏洞成因是 OAuth 客户端密钥被复用为 Flask 会话签名密钥。
- 会话数据用 pickle 反序列化,攻击者可伪造含恶意载荷的签名 cookie。
- 三个问题单独修复任一即可阻断攻击链,但叠加后形成完整 RCE。
- 从报告到修复耗时两个月,Google 未解释延迟原因。
- Köck 仅验证代码执行,未测试内容系统写入权限,影响范围未知。
- Google 未确认是否轮换两个暴露的 OAuth 密钥或使旧会话失效。
- Google 未披露修复前是否存在利用证据。
安全研究员 Simon Köck 在 Google 开发者文档基础设施 DevSite 中发现一个未授权远程代码执行(RCE)漏洞,Google 将其评为最高严重级别 S0,并支付了 9 万美元赏金。漏洞根源是 Google 将 OAuth 客户端密钥复用为 Flask 会话签名密钥,且会话数据使用 Python pickle 反序列化,三者叠加可让攻击者伪造会话并在服务器上执行 Python 代码。Köck 于 8 月 6 日报告漏洞,Google 次日确认、8 月 27 日批准赏金,但直到 10 月 7 日才部署修复。Google 未解释两个月的修复窗口,也未说明是否在修复前发现过利用痕迹。
关键事实
- 漏洞位于 Google 的 DevSite 基础设施,该平台支撑 developers.google.com 及多个同类文档站点。
- Google 将该漏洞评为 S0 级,即其严重性量表的最高级别,并支付 9 万美元赏金。
- 赏金构成为 7.5 万美元基础奖金(S0 级 RCE、普通应用层级)乘以 1.2 的报告质量系数。
- Köck 于 8 月 6 日报告漏洞,Google 次日接受,8 月 27 日批准赏金,10 月 7 日才部署修复。
- Köck 确认同一签名密钥在 7 个 Google 域名上有效,但仅公开演示了 developers.google.com 上的代码执行。
- Köck 使用 Python 的 time.sleep() 载荷验证 RCE,通过响应延迟匹配确认代码执行,未运行 shell 命令或访问敏感数据。
本站视角
对使用 Google 开发者文档的团队来说,这件事的直接风险不在于漏洞本身已被修复,而在于修复窗口长达两个月。如果攻击者在此期间利用该漏洞篡改文档中的安装命令或下载链接,就可能演变为供应链攻击——开发者按照被篡改的文档执行命令,恶意代码就会进入开发环境。Köck 没有测试内容系统的写入权限,Google 也未披露 DevSite 进程的权限和后端访问范围,所以实际爆炸半径仍然未知,但这恰恰是最需要警惕的地方:一个未授权 RCE 如果同时具备文档写入权限,影响面会从单点服务器扩展到整个依赖 Google 文档的开发者生态。 我们认为,Google 的赏金金额和评级说明它清楚这个漏洞的严重性,但两个月的修复延迟与 S0 评级明显不匹配。大厂对内部基础设施的修复排期往往受制于变更管理流程和跨团队协调,但这不能解释为何不公开临时缓解措施。更值得追问的是,Google 至今未确认两个暴露的 OAuth 密钥是否已轮换、旧会话是否已失效、修复前是否有利用证据。这些信息的缺失让依赖 Google 开发者文档的团队无法评估自身是否曾暴露于风险之中。 需要观察的是,Google 是否会补充披露修复细节和影响范围。如果继续沉默,可能会削弱安全研究者通过官方渠道报告漏洞的意愿——毕竟报告者拿到赏金后还要等两个月才看到修复,而期间的风险由整个生态承担。对于国内做开发者工具和文档平台的团队,这个案例也值得对照自查:OAuth 密钥是否被复用于其他用途、会话序列化是否使用了 pickle 这类不安全格式、漏洞修复流程是否有明确的时限承诺。
背景与影响
DevSite 是 Google 开发者文档的共享平台,承载 developers.google.com 及多个兄弟站点。此次漏洞的核心在于三个独立缺陷的串联:OAuth 客户端密钥被同时用作 Flask 会话签名密钥,导致密钥泄露即可伪造会话;会话 cookie 中序列化了来自已弃用 oauth2client 库的 OAuth2WebServerFlow 对象;OAuth 回调使用 Python pickle 反序列化会话数据,使恶意载荷得以执行。Köck 通过离线复现 cookie 签名确认了密钥复用,随后用恶意 pickle 载荷替换原对象并签名,在 OAuth 回调处理时触发执行。修复任一环节即可阻断攻击链,但三者共存使 DevSite 的 OAuth 流程变成未授权 RCE。Google 虽在一天内确认漏洞、三周内批准赏金,却拖到两个月后才部署修复,且未说明是否采取临时缓解措施。这意味着在 8 月 6 日至 10 月 7 日之间,该漏洞可能一直可被利用。Köck 提到 7 个域名受影响但仅公开 5 个,并指出两个暴露的 OAuth 密钥,Google 未确认是否轮换或使会话失效,也未披露是否发现利用痕迹。
本文由 AI 辅助整理自公开信源,事实部分以原文为准;「本站视角」一节为编辑部判断,欢迎指正。版权归原作者所有,如有异议请联系我们。