Kritieke tekortkomingen in CocoaPods stellen iOS- en macOS-apps bloot aan supply chain-aanvallen

Er zijn drie beveiligingslekken ontdekt in de CocoaPods-afhankelijkheidsbeheerder voor Swift- en Objective-C Cocoa-projecten die kunnen worden misbruikt om aanvallen op de softwaretoeleveringsketen uit te voeren, waardoor downstreamklanten ernstige risico’s lopen.

Door de kwetsbaarheden kan “elke kwaadwillende actor het eigendom van duizenden niet-geclaimde pods claimen en kwaadaardige code in veel van de meest populaire iOS- en macOS-applicaties invoegen”, aldus EVA Information Security-onderzoekers Reef Spektor en Eran Vaknin in een vandaag gepubliceerd rapport.

Het Israëlische applicatiebeveiligingsbedrijf zei dat de drie problemen inmiddels zijn gepatcht door CocoaPods vanaf oktober 2023. Het reset ook alle gebruikersessies op dat moment als reactie op de onthullingen.

Eén van de kwetsbaarheden is CVE-2024-38368 (CVSS-score: 9,3), waardoor een aanvaller het “Claim Your Pods”-proces kan misbruiken en de controle over een pakket kan overnemen, waardoor hij effectief met de broncode kan knoeien en kwaadaardige wijzigingen doorvoeren. Hiervoor moesten echter alle eerdere beheerders uit het project worden verwijderd.

De wortels van het probleem gaan terug tot 2014, toen een migratie naar de Trunk-server duizenden pakketten met onbekende (of niet-geclaimde) eigenaren achterliet, waardoor een aanvaller een openbare API kon gebruiken voor het claimen van pods en een e-mailadres dat beschikbaar was in de CocoaPods. broncode (“[email protected]”) om de controle over te nemen.

De tweede bug is zelfs nog kritischer (CVE-2024-38366, CVSS-score: 10,0) en maakt gebruik van een onveilige e-mailverificatieworkflow om willekeurige code op de Trunk-server uit te voeren, die vervolgens kan worden gebruikt om de pakketten te manipuleren of te vervangen.

Ook geïdentificeerd in de service is een tweede probleem in de e-mailadresverificatiecomponent (CVE-2024-38367, CVSS-score: 8,2) die een ontvanger zou kunnen verleiden om op een ogenschijnlijk goedaardige verificatielink te klikken, terwijl deze in werkelijkheid de verzoek indienen bij een door de aanvaller beheerd domein om toegang te krijgen tot de sessietokens van een ontwikkelaar.

Wat de zaken nog erger maakt, is dat dit kan worden opgewaardeerd tot een zero-click-aanval op accountovername door een HTTP-header te spoofen (dat wil zeggen door het X-Forwarded-Host-headerveld aan te passen) en te profiteren van verkeerd geconfigureerde e-mailbeveiligingstools.

“We hebben ontdekt dat bijna elke pod-eigenaar geregistreerd is met zijn of haar organisatie-e-mailadres op de Trunk-server, wat hen kwetsbaar maakt voor onze zero-click takeover-kwetsbaarheid”, aldus de onderzoekers.

Dit is niet de eerste keer dat CocoaPods onder de loep wordt genomen. In maart 2023 onthulde Checkmarx dat een verlaten subdomein dat is gekoppeld aan de dependency manager (“cdn2.cocoapods(.)org”) mogelijk is gekaapt door een tegenstander via GitHub Pages met als doel hun payloads te hosten.

Thijs Van der Does