Cloudflare 修复了 Cloudflare Containers 和 Cloudflare Sandboxes 服务中的一个跨租户漏洞。Accomplish 团队的研究人员证明,拥有 Workers Paid 账户的用户可以恢复同一主机上其他客户容器此前使用过的存储块中的残留部分。研究人员 Oren Yomtov 于 2026 年 9 月 4 日通过漏洞赏金计划向公司报告了该问题。Cloudflare 表示,未发现客户数据遭到泄露的证据。
问题是如何产生的?
Containers 使用 Linux device mapper thin provisioning 技术,为通过 Firecracker 运行的虚拟机提供可写根磁盘。受影响的存储池使用 64 千字节大小的块,并启用了 skip_block_zeroing 选项,这意味着重新分配的块在提供给新容器之前不会被清零。
当仅向新块的一部分写入 4 千字节时,剩余的 60 千字节可能保留此前所有者的数据。随后从原始设备 /dev/vdc 读取时,可能会暴露这些字节,尽管新容器从未写入过这些内容。
测试证明了什么?
该漏洞利用无法选择特定客户、容器或主机,残留数据也不保证一定出现。不过,研究人员表示,他们在测试的 24 个位置中有 18 个观察到了残留材料,并在四大洲的 22 个基础节点中有 20 个观察到了残留材料。观察到的类型包括目录结构、数据库页面,以及结构完整的 SQLite 数据库。
研究人员使用 ext4 文件系统的哈希测试和元数据,将其测试系统的块与来自其他文件系统的块区分开来。根据公布的结果,他们识别出了 2,700 个外部目录节点,而测试中的 5,614 个目录块没有任何一个被归属于研究人员的系统。Cloudflare 表示,提交给公司的材料不包含文件名、标识符、凭据或恢复出的内容,并且研究人员已安全删除其持有的数据。
Cloudflare 如何修复该漏洞?
公司从 dm-thin 存储池的配置中移除了 skip_block_zeroing 选项,使新块恢复为默认行为,即在提供使用前将其清零。研究人员独立确认,在这一变更后,概念验证已无法继续运行。
不过,仅清零新分配的块并不足够,因为部分块仍与现有容器磁盘或 OCI 镜像层的临时快照相关联。因此,Cloudflare 停用了旧容器磁盘,删除了修复前缓存的快照,清空主机并重启虚拟机,同时清理了缓存的镜像内存。该清理工作于 2026 年 9 月 19 日完成,而核心修复的部署于 9 月 7 日完成。
为什么这条消息很重要?
这起事件的重要性在于,它说明云基础设施中的租户隔离并不只依赖虚拟机;存储重用的细节和精简配置的行为可能会形成数据从非活动状态泄露的渠道。另一方面,实际限制也很明确:测试无法针对特定受害者,也无法访问实际连接的磁盘,并且没有证明能够修改其他客户的数据或影响其工作负载的可用性。
Cloudflare 检查了历史磁盘输入输出测量日志,以寻找结合 4 千字节写入和更大读取的独特模式。公司将符合该模式的活动归因于研究人员及其工程师在获得授权的验证过程中产生的活动,并未发现表明攻击由其他方面利用的额外活动。根据 Cloudflare 的说法,客户无需采取任何措施。