Cloudflare repareert een fout waardoor de ene container de overgebleven schijfgegevens van een andere klant kan lezen

Door een fout in Cloudflare Containers kon een betalende klant gegevens lezen die de containers van andere klanten op dezelfde server hadden achtergelaten, zeiden Cloudflare en de onderzoekers die het vonden donderdag.

De gegevens kwamen van schijfruimte die eerdere containers hadden gebruikt en opgegeven, en niet van enige live werklast, en een aanvaller kon volgens Cloudflare niet kiezen wiens gegevens hij kreeg. Het bedrijf heeft de fout in zijn service verholpen en zegt dat klanten niets hoeven te doen.

Cloudflare Containers voert de programma’s van klanten uit in containers op servers die door veel accounts worden gedeeld, en Cloudflare, en niet de klant, kiest de server. Cloudflare Sandboxes, dat op containers draait en wordt verkocht als een veilige plek om niet-vertrouwde code uit te voeren, inclusief code geschreven door AI-agenten, werd ook getroffen.

De fout werd op 4 september gemeld door Oren Yomtov van het beveiligingsbedrijf Bereikenvia het bugbounty-programma van Cloudflare.

Het probleem zat in de manier waarop de gedeelde schijven waren ingesteld. Elke container krijgt een schijf die is gebouwd met behulp van een Linux-functie genaamd thin provisioning, die opslag toewijst in blokken van 64 kilobyte. Wanneer een container werd verwijderd, keerden de blokken ervan terug naar een pool die door klantaccounts werd gedeeld.

Die pool was ingesteld om het wissen van een blok over te slaan voordat het aan de volgende container werd overgedragen, en wissen is normaal gesproken de standaardinstelling. Dus als een nieuwe container slechts een klein bedrag in een hergebruikt blok schreef, bevatte de rest van het blok nog steeds de gegevens van de vorige container.

Om dit te bereiken schreven de onderzoekers een klein blok van vier kilobyte in ongebruikte ruimte en lazen vervolgens het hele blok terug op het onbewerkte schijfniveau. De 60 kilobytes die ze niet hadden geschreven, bevatten nog steeds bytes uit een vorige container.

Tijdens productietests meldden ze dat er restmateriaal werd gevonden bij 18 van de 24 pogingen, elk op een server die Cloudflare koos, en op 20 van de 22 onderliggende machines op vier continenten.

De herstelde blokken bevatten mapstructuren, databasepagina’s en structureel complete SQLite-databases, zei Cloudflare; Het eigen artikel van de onderzoekers bevat directorylijsten, SQLite-databases, Chromium-browserprofielen, .env-bestanden en inloggegevensbestanden, en beschrijft deze als bestanden van andere klanten.

De onderzoekers meldden dat hun analysescripts alleen tellingen en formaatcontroles uitvoeren, en niet de inhoud van bestanden, en dat het materiaal dat ze naar Cloudflare stuurden geen namen, identificatiegegevens, inloggegevens of herstelde inhoud van derden bevatte.

Ze bevestigden ook dat de herstelde gegevens privé werden gehouden en veilig werden verwijderd nadat ze deze hadden ingediend, zei Cloudflare. De onderzoekers hebben niet aangetoond dat de fout de livegegevens van een andere klant kan veranderen of een werklast offline kan halen.

Cloudflare heeft de fout in twee stappen verholpen. Eerst werd het wissen weer ingeschakeld voor nieuw uitgedeelde blokken, waardoor de gerapporteerde methode werd stopgezet; de onderzoekers bevestigden op 14 september dat hun proof of concept niet langer werkte.

Maar die verandering zorgde niet voor het opruimen van blokken die al waren toegewezen aan actieve containerschijven of in de cache van voorbereide afbeeldingslagen van elke server, die een nieuwe container kon erven en lezen. Daarom schakelde Cloudflare ook elke actieve containerschijf uit en wiste deze caches, waardoor servers leegliepen en opnieuw werden opgestart tijdens rustige uren. Het bedrijf voltooide die opruiming op 19 september en maakte de fout vijf dagen later bekend.

Cloudflare zei dat het zocht naar tekenen dat iemand anders de methode had gebruikt. Het bouwde detectiehandtekeningen op basis van het proof of concept van de onderzoekers en zijn eigen kopie van de aanval en voerde deze uit aan de hand van de schijfactiviteitsrecords die het had bijgehouden. Het vond alleen de geautoriseerde tests van de onderzoekers en zijn eigen ingenieurs, en zei dat het geen bewijs zag dat deze specifieke methode door iemand anders werd gebruikt.

Die bevinding heeft betrekking op de gegevens die Cloudflare bewaarde, hoewel er niet werd vermeld over de tijdspanne of wanneer de onveilige situatie voor het eerst werd ingevoerd. Hoe lang de blootstelling duurde, wordt dus niet duidelijk uit het verslag.

De onderzoekers, die afzonderlijk zeggen dat dezelfde schijfconfiguratie het Browser Run-product van Cloudflare beïnvloedde, beschreven de fout als hun zesde ontsnapping uit een code-sandbox die sinds juli is gepubliceerd, na bevindingen in Claude Cowork en Claude Code van Anthropic, Cursors opdrachtregeltool, Docker en OpenAI’s Codex. Het bericht van Cloudflare noemde Containers en Sandboxes als getroffen en vermeldde Browser Run niet.

Thijs Van der Does