热门相依管理工具CocoaBeans漏洞,恐波及数百万个macOS与iOS程式

以色列资安业者E.V.A Information Security本周披露,由CocoaPods开发的苹果平台程式相依管理工具CocoaBeans,存在三大漏洞CVE-2024-38366、CVE-2024-38367与CVE-2024-38368,它们都与CocoaBeans的验证伺服器Trunk有关,允许未经授权的用户认领孤儿Pod套件,破坏受害者的会话,甚至可取得Trunk伺服器与基础设施的最高存取权限。不过,上述漏洞皆已于去年完成修补。

CocoaBeans是个开源的应用程式相依性管理工具,目前有超过300万个行动程式用它来管理10万个函式库,广泛应用在苹果的Swift与Objective-C专案中。换句话说,只要是针对macOS、iOS、iPadOS或其它苹果平台所开发的程式采用了CocoaBeans,都可能受到波及。

根据E.V.A的说明,CocoaPods所使用的套件称为Pod,而用来描述套件规格的档案则是Podspec,档案中的元资料包含名称、版本、来源档案、相依性与其它资料,以将Pod正确地整合到iOS或macOS专案中,当开源社群贡献Podspec予CocoaPods时,作者需要注册一个帐户,用来储存与维护Pod及Podspec,亦有权上传或更新资料。

CocoaPods原本是利用这些作者的GitHub帐户来辨识他们,但在2014年5月迁移到新的Trunk伺服器,作为CocoaPods的集中储存及发布平台,并支援电子邮件验证。

漏洞之一的CVE-2024-38368即与此次的迁移有关。CocoaPods要求Pod作者于Trunk伺服器上重置身分以保留对内容的控制权,迄今却有1,866个Pod无人认领,Trunk替这些孤儿Pod建置了一个预设的所有人,且全都使用同样的unclaimed-pods@cocoapods.org电子邮件帐户。另一方面,CocoaPods还保留了用来宣称Pod所有权的公共API端点,允许任何人不需经过验证来宣告Pod的所有权。

因此,当有心人士取得孤儿Pod所有权之后,即能注入恶意程式并危害使用相关Pod的程式。

至于CVE-2024-38366则是当中最危险的漏洞,其CVSS风险评分高达10。此一漏洞允许骇客借由操纵电子邮件网域MX纪录验证以执行远端程式。它可能允许骇客取得Trunk伺服器与基础设施的最高存取权限,进而于伺服器上执行任何命令、存取或修改敏感资料,编辑伺服器上的Podspec,以及强制重置所有会话等。

CVE-2024-38367漏洞出现在Trunk会话的验证步骤,可能允许骇客劫持会话,进而接管其帐户。

相关漏洞皆已于去年9月修补,尽管没有已遭攻击的证据,但E.V.A认为这并不代表它们没被利用过,建议开发人员应该采取必要措施来保护其程式码,包括让podfile.lock档案与所有CocoaPods同步,确保CocoaPods上的Pod与内部Pod是相同的,避免使用孤儿Pod,定期执行安全扫描,以及小心被广泛使用的依赖项,因为它们通常也最受骇客青睐。