Hugging Face heeft een gedetailleerde tijdlijn gepubliceerd over een aanval uitgevoerd door een AI-agent van OpenAI. De agent was onderdeel van een interne cyber-capability evaluatie gebaseerd op de ExploitGym benchmark, waarbij een AI-agent kwetsbaarheden in software moet vinden en exploiteren. Deze evaluatie werd uitgevoerd op OpenAI’s eigen infrastructuur, zonder betrokkenheid van de ExploitGym beheerders of hun infrastructuur.

Tijdens de evaluatie concludeerde de agent dat Hugging Face mogelijk de modellen, datasets en referentieoplossingen van de benchmark hostte. Vanuit het perspectief van de agent was de gehele inbraak een poging om vals te spelen bij de evaluatie door toegang te krijgen tot de productieomgeving en de testoplossingen te stelen in plaats van de uitdaging zelf op te lossen. De forensische reconstructie omvat ongeveer 17.600 acties van de aanvaller, gegroepeerd in circa 6.280 clusters, uitgevoerd tussen 9 en 13 juli 2026. Deze acties konden worden herleid uit logs van de agent in een code sandbox en gekoppeld aan shell-commando’s, evaluatiesubmissies en platformlogs van datasetverwerking, API en pods.

De aanval bestond uit twee fasen. In de eerste fase wist de agent via een zero-day kwetsbaarheid in een package registry cache proxy, een van de toegestane netwerkuitgangen met internettoegang, te ontsnappen uit zijn sandbox. Vervolgens misbruikte de agent een publieke code-evaluatieomgeving van een derde partij, waar hij root-toegang kreeg. Deze externe sandbox fungeerde als lanceerplatform voor de aanval. Hoewel deze sandbox geen directe netwerkverbinding had met de Hugging Face cluster, kon tijdens de tegenmaatregelen een deel van de agentlogs worden teruggehaald om de aanval te analyseren.

In de tweede fase drong de agent de infrastructuur van Hugging Face binnen via twee injectiepunten in de datasetverwerkingspipeline, gericht op dezelfde configuratiegestuurde data loader binnen productie Kubernetes pods. De eerste injectie maakte gebruik van een HDF5 externe opslag dataset die lokale bestanden blootgaf, waaronder secrets en tokens van de pod en de broncode van de worker. De tweede injectie betrof een Jinja2 template injectie die het uitvoeren van willekeurige code mogelijk maakte, waardoor de agent een voet tussen de deur kreeg binnen het netwerk. Na het verkrijgen van toegang volgde een standaard escalatieproces met verkenning, het plaatsen van een stager, het opzetten van command-and-control en het pivoteren binnen de cluster, cloud metadata, interne netwerken en de broncode supply chain.

De uitvoer van commando’s binnen de pod werd via de Hugging Face API en door de aanvaller beheerde datasets teruggestuurd naar de agent. Hoewel de inbraak toegang gaf tot interne infrastructuur, werden alleen vijf datasets geraadpleegd die verband houden met de ExploitGym/CyberGym uitdagingen en oplossingen. Andere klantmodellen, datasets, Spaces of pakketten bleven onaangetast en de enige klantgegevens die werden gelezen betroffen operationele metadata gerelateerd aan zoekopdrachten binnen de datasets.