Vercel百万美元沙盒挑战的发现

Vercel百万美元沙盒挑战的发现

💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

Vercel举办百万美元沙盒逃逸挑战,两周内收到1285份报告,支付24.2万美元赏金。研究员发现Linux内核零日漏洞,可泄露主机内存、崩溃主机甚至执行代码,已联合AWS等修复;另有实习生发现跨租户磁盘数据泄露。Trail of Bits审计确认虚拟化边界可靠,并提出三项架构改进,均已落实。

🔎

延伸解读

内核零日漏洞的广泛影响

研究员在Linux内核网络栈中发现零日漏洞,可导致主机内存泄露、主机崩溃甚至代码执行。由于几乎所有主流云提供商都在同一内核层隔离工作负载,该漏洞属于共享基础设施风险。Vercel与AWS等合作修复,并因漏洞已被公开而披露其存在,但细节待补丁发布。

跨租户磁盘泄露的信任边界问题

实习生发现设备映射器存储层存在跨租户数据泄露,允许沙盒读取已删除沙盒的回收磁盘块。攻击需知晓受害者内部快照存储密钥(96位随机标识符),且仅在同一所有者账户间演示。Vercel仍在一周内修复,将快照创建移至主机侧服务,并绑定存储对象到项目。

架构改进:从信任边界到纵深防御

Trail of Bits审计确认虚拟化边界可靠,并提出三项改进:消除对guest的信任,所有跨边界值需服务端派生或签名;统一出口策略决策,避免子系统解析不一致;假设下一个零日,强化沙盒保护,如保持内核更新、禁用嵌套虚拟化、使用Firecracker jailer限制权限。

漏洞赏金挑战的成果与启示

两周内收到1285份报告,支付24.2万美元赏金,其中57份有效、32份信息性。报告多样性显示研究者使用不同方法,有的针对内核边界,有的攻击网络策略。公开挑战能发现内部评估和白盒审计遗漏的问题,如跨租户磁盘快照恢复漏洞。

❓

Q&A

Vercel的百万美元沙盒挑战最终发现了哪些严重的安全问题?

挑战中最严重的发现是一个Linux内核零日漏洞,该漏洞可导致三种攻击:通过网络泄露主机内存、使主机崩溃、以及在主机上执行代码。此外,一名Vercel实习生发现了跨租户磁盘数据泄露漏洞,允许沙盒读取已删除沙盒的回收磁盘块。

Linux内核零日漏洞具体能造成哪些危害?

该漏洞允许从microVM内部发送特制数据包,实现三种攻击:1) 持续泄露主机内存到网络;2) 发送两个数据包即可使主机崩溃,导致其上所有沙盒关闭;3) 以完整管理员权限在主机上执行命令,突破沙盒隔离边界。

Vercel如何处理这个Linux内核零日漏洞?

Vercel立即与研究员合作理解并缓解漏洞,联合AWS等行业伙伴优先修复,确保Vercel客户和其他内核使用者安全。研究员联系了内核维护者并创建候选补丁,修复正在私下审查,CVE待发布。由于漏洞已被公开披露,Vercel也披露了其存在。

Trail of Bits的审计结论是什么?他们提出了哪些架构改进?

Trail of Bits经过四个工程师周的源代码审计,认为Vercel的虚拟化边界是可靠的,每个沙盒运行在独立的Firecracker microVM中。他们提出了三项架构改进并已实施:1) 消除对guest的所有信任,边界值应由服务器端派生或签名;2) 统一策略决策,使用单一规范化例程和决策组件;3) 假设下一个零日漏洞,加强沙盒保护,如保持内核更新、禁用嵌套虚拟化、使用jailer限制权限。

跨租户磁盘快照恢复漏洞是如何被利用的?

研究员结合已知的容器逃逸原语和信任缺陷,在沙盒内拦截快照响应并重写,交换两个自己拥有的账户的快照存储对象,从而在恢复“自己”的快照时获取另一个账户的整个文件系统。攻击需要知道受害者的内部快照存储密钥(96位随机标识符),该密钥仅存在于受害者沙盒内,因此陌生人无法针对其他租户。

Vercel沙盒挑战的赏金和报告统计如何?

挑战在两周内收到1285份报告,支付了24.2万美元赏金。报告分类:877份重复、319份不适用、57份有效、32份信息性。有效报告中包括1个严重、5个高危、9个中危、42个低危和32个信息性发现。

🏷️

标签

➡️

继续阅读