This article details a vulnerability found in Cloudflare's multi-tenant container environment where residual data from previous tenants could be exposed. It explains the underlying storage mechanism (Linux device mapper thin provisioning) and how a configuration oversight (skip_block_zeroing) allowed data fragments to persist, leading to a cross-tenant data leak. The mitigation steps involved reconfiguring storage to zero out blocks and a comprehensive cleanup of existing container disks and caches.
Read original on Cloudflare BlogCloudflare's incident report highlights a critical security vulnerability in their multi-tenant Containers and Sandboxes platform. This case study is highly relevant to system design as it delves into the intricacies of secure multi-tenancy, storage isolation, and the potential pitfalls of low-level infrastructure configurations. Understanding such vulnerabilities is crucial for architects designing secure cloud platforms or shared environments.
The vulnerability stemmed from the use of Linux device mapper thin provisioning (dm-thin) for container root disks. In a multi-tenant setup, physical storage blocks are reused across different customer workloads. Cloudflare's configuration included `skip_block_zeroing`, which meant that when a previously used 64 KiB block was reassigned, a smaller write (e.g., 4 KiB) would only overwrite a portion, leaving the remaining 60 KiB potentially accessible with data from the previous tenant. This allowed a Workers Paid account to recover residual disk blocks from other tenants on the same host.
Key Takeaway for System Designers
In multi-tenant systems, strict isolation at all layers is paramount. This includes ensuring that physical storage is securely wiped or zeroed before being reallocated to a new tenant to prevent data remnants from previous users. Overlooking low-level storage configurations can lead to severe security breaches.