Supply Chain Insecurity: Exposing Vulnerabilities in iOS Dependency Management Systems
David Schmidt, Gabriel K. Gegenhuber, Edgar Weippl, Sebastian Schrittwieser
Dependency management systems are a critical component in software development, enabling the incorporation of existing functionality. However, misconfigurations and malicious actors in these systems pose security risks, leading to supply chain attacks. Despite the widespread use of smartphone apps, the security of dependency management systems in the iOS software supply chain has received limited attention. In this paper, we focus on CocoaPods, one of the most widely used dependency management systems for iOS app development, but also examine the security of Carthage and Swift Package Manager (SwiftPM). We demonstrate that iOS apps expose internal dependency names and versions. Attackers can exploit this information to register previously unclaimed dependencies in CocoaPods, enabling remote code execution (RCE) on developer machines and build servers. Additionally, we show that attackers can compromise dependencies by reclaiming abandoned domains and GitHub URLs. Analyzing 9,491 real-world iOS applications, we find that a significant fraction is vulnerable to these attacks, putting millions of users at risk, including applications from major organizations for which we confirmed exploitation via responsible disclosure. Finally, we compare iOS dependency management systems with Cargo, Go modules, npm, pip, and Maven, and discuss conceptual issues and practical mitigation strategies.
尚无 AI 解读,展示原文摘要