Google DevSite高危漏洞:未认证攻击者可实现远程代码执行
原创
网络安全9527
网络安全9527
安全圈的那点事儿
2026年10月13日 17:59
北京
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
谷歌共享开发文档平台DevSite存在一处高危安全漏洞。攻击者无需身份认证,只需构造携带恶意Python pickle载荷的伪造Flask会话Cookie,即可在谷歌托管服务上执行任意代码。
安全研究员西蒙·克克(Simon Köck)在分析谷歌开发者文档站点的OAuth授权流程时发现了该问题。
该漏洞影响 developers.google.com 及多个域名背后的共享基础设施,包含Firebase、安卓开发者、安卓开源项目以及安卓合作伙伴文档站点。谷歌已于2026年10月7日修复此漏洞,并通过漏洞奖励计划向该研究员发放9万美元奖金。
Google DevSite高危漏洞详情
攻击的起点是向 developers.google.com 无需认证的接口 /oauth2/authorize 发起请求。该接口返回一枚Flask会话Cookie,其大小远超过仅存放OAuth跨站请求伪造令牌与跳转回传地址所需的正常尺寸。
Flask客户端会话Cookie会做签名以保证数据完整性,但默认并不会加密。研究员对压缩后的载荷解码后发现,会话内包含序列化的OAuth流程对象,其中存放谷歌OAuth客户端ID以及客户端密钥。
问题的严重性不止OAuth凭证泄露:OAuth客户端密钥同时被复用为用于签名会话Cookie的Flask密钥(SECRET\_KEY)。
密钥复用意味着,攻击者拿到该客户端密钥后,就能够为任意会话内容生成合法签名。服务器无法区分谷歌下发的合法Cookie和攻击者伪造的恶意Cookie。
存在漏洞的回调处理逻辑,会从已签名会话中取出OAuth流程对象,经过Base64解码,直接传入Python的 pickle.loads() 函数。
对不受信数据使用pickle做反序列化本身就存在安全风险;精心构造的对象在反序列化阶段就可以调用Python函数。
正常情况下,经过签名的Flask Cookie能够阻止用户篡改序列化对象。但由于签名密钥直接暴露在Cookie中,安全信任边界彻底失效。
攻击者可以构造伪造会话,里面植入可控的pickle对象,同时附带合法的跨站请求伪造状态值。服务器收到请求后会校验伪造签名,读取恶意对象并完成反序列化。
该研究员并未在谷歌生产环境执行系统命令,其漏洞验证POC仅使用 time.sleep() 载荷。服务器按照攻击者设定的时长(3秒、5秒、8秒)延迟响应,证实服务器侧执行了传入的Python函数。
该漏洞并非只影响单个文档站点,这套存在缺陷的会话签名配置在整个DevSite平台通用。拿到密钥后可生成对7个谷歌域名均生效的伪造会话,受影响域名包括:
- developers.google.com
- firebase.google.com
- developer.android.com
- source.android.com
- docs.partner.android.com
这使得漏洞危害尤为严重:未认证攻击者只需启动OAuth流程,从返回Cookie中提取签名密钥,再制作恶意伪造Cookie,无需谷歌账号,就能触发服务器端代码执行。
克克于2026年8月6日向谷歌上报漏洞;谷歌次日完成漏洞分类受理,并在8月27日确定发放9万美元奖金;最终修复程序于10月7日正式上线。
该案例警示:密钥泄露、密钥复用、客户端状态存储、不安全反序列化,这些单独就很危险的错误叠加在一起,就会形成一条无需身份认证的远程代码执行(RCE)攻击链。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论