Un team di ricercatori israeliani di EVA Information Security ha scoperto gravi vulnerabilità in CocoaPods, un popolare gestore di dipendenze open source utilizzato da oltre tre milioni di applicazioni iOS e macOS sviluppate in Swift e Objective-C. Queste falle di sicurezza, rimaste inosservate per quasi un decennio, hanno potenzialmente esposto numerose app a rischi di attacchi alla supply chain.

Nel 2014, CocoaPods migrò tutti i suoi Pods (file che descrivono le dipendenze di un progetto) su un nuovo server GitHub chiamato Trunk. Durante questa transizione, l’attribuzione di tutti i Pods fu azzerata e gli autori vennero invitati a reclamare nuovamente la proprietà dei loro lavori. Tuttavia, molti non lo fecero, lasciando circa 1.870 Pods “orfani” e potenzialmente accessibili a malintenzionati.

Questa situazione ha portato all’identificazione di tre distinte vulnerabilità:

  • CVE-2024-38368 (CVSS 9.3): Tutti i Pods orfani erano associati a un indirizzo email predefinito. Fino alla fine del 2023, era disponibile un’API pubblica per reclamare questi Pods senza necessità di verifica. Un attaccante avrebbe potuto facilmente appropriarsi di un Pod e inserirvi codice malevolo
  • CVE-2024-38366 (CVSS 10.0): Una falla nel pacchetto Ruby RFC822 utilizzato per la verifica dello scambio di posta consentiva l’esecuzione di codice remoto sul server Trunk. Sfruttando questa vulnerabilità, un malintenzionato avrebbe potuto iniettare comandi bash per rubare token di sessione, manipolare il traffico dei client o addirittura arrestare il server
  • CVE-2024-38367 (CVSS 8.2): Una debolezza nel codice sorgente del server Trunk permetteva il furto di token di validazione della sessione senza interazione dell’utente. Questa vulnerabilità sfruttava il funzionamento standard dei software di scansione delle email

I ricercatori non hanno trovato prove di sfruttamento attivo di queste vulnerabilità, ma data l’ampia diffusione di dispositivi iOS e il fatto che app di grandi aziende come Meta, Apple, Microsoft, TikTok e Amazon utilizzavano Pods potenzialmente vulnerabili, l’impatto potenziale è stato stimato in “migliaia o milioni” di applicazioni esposte.

Il team di ricerca ha inoltre dimostrato la possibilità di appropriarsi degli account dei proprietari di alcuni dei pacchetti CocoaPods più popolari. Questo avrebbe potuto portare a devastanti attacchi alla catena di approvvigionamento, con potenziali ripercussioni sull’intero ecosistema Apple.

attacchi supply chain

In risposta a queste scoperte, il team di CocoaPods ha implementato correzioni alcuni mesi fa, anche se i dettagli specifici non sono stati resi noti fino alla pubblicazione della ricerca. Orta Therox, un volontario del progetto CocoaPods, ha dichiarato che sono stati cancellati tutti i codici di sessione per garantire che solo gli utenti con accesso alle proprie email possano aggiornare i Pods.

I ricercatori hanno fornito diverse raccomandazioni per gli utenti di CocoaPods:

  • Esaminare le proprie dipendenze alla ricerca di Pods orfani
  • Effettuare validazioni del checksum su tutto il codice scaricato dal server Trunk di CocoaPods
  • Revisionare attentamente tutto il codice di terze parti
  • Aggiornare le installazioni di CocoaPods
  • Prestare maggiore attenzione ai rischi legati alla supply chain del software open source

Considerando che si stima che il 97% di tutte le basi di codice commerciali utilizzi componenti open source, questi consigli sono applicabili a quasi tutti gli sviluppatori, indipendentemente dall’uso specifico di CocoaPods.

Questo incidente si inserisce in un contesto più ampio di preoccupazioni sulla sicurezza del software open source. Negli ultimi anni, abbiamo infatti assistito a numerosi attacchi alla catena di approvvigionamento di alto profilo, come Log4Shell e l’attacco SolarWinds e sebbene le vulnerabilità di CocoaPods non siano state sfruttate in modo così dannoso (almeno per ora), questo caso serve come un importante promemoria dei rischi potenziali.