事件经过
GitHub 安全公告确认辅助函数接受全局 CONTAINER_SHARED_SECRET 作为持有者令牌,而不验证调用者属于哪个工作区。由于该密钥在每个容器上相同且可从租户 shell 访问,任何租户都可以到达任何其他租户的工作区 API,并获得跨工作区读取、写入、上传、备份劫持和破坏性恢复原语。公告中记录了一个可工作的请求级 PoC(每个原语一个标头)。
影响分析
这是一个零权限的跨租户能力阶梯,位于代理式开发/云操作系统平台中:攻击者控制对受害者源代码、.git 历史记录、密钥和用户数据的读取,以及对受害者工作区的写入(供应链种子注入)和破坏性恢复。持有客户代码的代理平台会被任何单个付费租户完全攻破。
攻击途径
从任何活动工作区内的 shell 中,攻击者将应用范围的 CONTAINER_SHARED_SECRET(注入到每个容器的面向用户的环境中)作为 Bearer 令牌呈现给对等工作区的 /archive、/upload-file、/backup、/restore 或 /bind 端点。辅助函数 verifyContainerAuth()/authenticateWorkspaceHttp() 接受该密钥,而不进行工作区/受众绑定。
受影响系统
Soft Machine(基于代理 VM 的开发环境/云操作系统)版本 0.2.247 及更早版本
缓解措施
根据公告 GHSA-63gh-vp9f-vxhj 升级到修补后的 Soft Machine 版本(> 0.2.247);在此之前隔离工作区并限制共享密钥的可达性。