Un report di E.V.A Information Security ha rivelato che CocoaPods, un gestore di dipendenze molto utilizzato nell'ecosistema Apple, è stato soggetto a tre vulnerabilità critiche per diversi anni esponendo milioni di app presenti sullo Store a gravi rischi di sicurezza.
CocoaPods è una piattaforma centrale per gli sviluppatori Apple, utilizzata per aggiungere e gestire librerie esterne note come "pods". Con oltre 100.000 librerie e più di tre milioni di app, comprese alcune delle più popolari al mondo come Instagram, X, Slack, AirBnB, Tinder e Uber, CocoaPods rappresenta un bersaglio di grande interesse per gli hacker. Le vulnerabilità di base presenti sulla piattaforma ed emerse di recente hanno suscitato serie preoccupazioni tra utenti comuni e organizzazioni che usano regolarmente i dispositivi Apple.
Rischio elevato
Il rapporto, pubblicato lunedì, ha evidenziato tre vulnerabilità significative:
La più critica, identificata come CVE-2024-38366, permette l'esecuzione di codice da remoto (RCE) e ha ricevuto una valutazione CVSS di 10 su 10. Altri due bug notevoli includono CVE-2024-38368, relativo a pods senza proprietari, con una valutazione di 9,3, e CVE-2024-38367, riguardante il dirottamento della verifica delle sessioni, con una valutazione di 8,2.
"L'impatto è enorme," ... "Non possiamo nemmeno calcolare il numero di app colpite a causa dell'uso vastissimo di CocoaPods." ha affermato Alon Boxiner, CEO e co-fondatore di E.V.A.
Problemi di lunga data nella gestione delle API
CocoaPods è stato lanciato nel 2011 e i problemi attuali risalgono al 2014, quando è stato introdotto un nuovo server "Trunk" per sostituire il sistema di autenticazione basato su GitHub. Anche se Trunk prometteva benefici in termini di sicurezza e scalabilità, la migrazione ha causato problemi significativi, come il reset della proprietà di tutti i pods.
"Molti autori non hanno rivendicato i loro pods," ha ricordato Reef Spektor, vicepresidente della ricerca presso E.V.A. Di conseguenza, migliaia di dipendenze sono rimaste orfane. Ancora oggi, molti pods sono senza proprietario, esposti a potenziali attacchi.
La vulnerabilità peggiore: un bug RCE legato a RubyGem
Ironia della sorte, la vulnerabilità più grave risiede in un componente open source integrato nel 2014 per validare gli indirizzi email degli utenti. Grazie a metodi vulnerabili nel pacchetto RubyGem rfc-22, un malintenzionato avrebbe potuto iniettare codice malevolo nel campo dell'indirizzo durante la validazione dell'account su Trunk, ottenendo così accesso completo al servizio.
Spektor ha spiegato:
Posso prenderne il pieno controllo se voglio. Posso modificare i pods in tempo reale, aggiungendo codice malevolo che non sarebbe visibile esternamente."
Le possibilità di sfruttamento della vulnerabilità sono illimitate e includono la capacità di spegnere Trunk o rubare token di sessione.
Detto questo, al momento non ci sono prove che questi bug siano stati sfruttati, ma E.V.A raccomanda agli sviluppatori di app che utilizzano CocoaPods di seguire sei passaggi di rimedio, come la verifica dei pods orfani e la revisione delle dipendenze di codice di terze parti.
Boxiner ha concluso sottolineando l'importanza di considerare i rischi della supply chain:
"Non si tratta solo di come sviluppi, ma anche delle tue dipendenze che possono essere punti ciechi."
Questa scoperta mette in luce l'importanza della sicurezza nella gestione delle dipendenze di software e i rischi potenziali che possono derivare da vulnerabilità non rilevate per lungo tempo.