共计 1071 个字符,预计需要花费 3 分钟才能阅读完成。
十年未被发现的漏洞使得成千上万的 macOS 和 iOS 应用容易受到供应链攻击。黑客可能已经添加了恶意代码,危及数百万或数十亿安装这些应用的人的安全,研究人员周一表示。
这些漏洞,去年十月已被修复,存在于用于管理 CocoaPods 的“主干”服务器中,这是一个开源 Swift 和 Objective- C 项目的仓库,大约有 300 万 macOS 和 iOS 应用依赖于此。当开发者对其“pods”(CocoaPods 术语中的独立代码包)进行更改时,依赖的应用通常会通过应用更新自动合并这些更改,通常不需要终端用户进行交互。
“许多应用程序可以访问用户最敏感的信息:信用卡详细信息、医疗记录、私人材料等,”EVA 信息安全公司 的研究人员写道。“在这些应用程序中注入代码可以使攻击者几乎可以出于任何恶意目的——勒索软件、欺诈、敲诈、企业间谍活动等——访问这些信息。在此过程中,它可能会使公司面临重大的法律责任和声誉风险。”
EVA 发现的三种漏洞源于用于验证个别 pods 开发者的不安全验证电子邮件机制。开发者输入与其 pod 关联的电子邮件地址。主干服务器通过向该地址发送链接来响应。当一个人点击链接时,他们获得了账户的访问权限。
在一种情况下,攻击者可以操纵链接中的 URL,使其指向攻击者控制的服务器。该服务器接受伪造的XFH,这是一个用于标识 HTTP 请求中指定的目标主机的 HTTP 头。EVA 的研究人员发现,他们可以使用伪造的 XFH 来构建他们选择的 URL。
通常,电子邮件会包含一个有效的链接,发布到 CocoaPods.org 服务器,例如:
研究人员可以改为更改 URL,使其指向他们自己的服务器:
这一漏洞,编号为 CVE-2024-38367,存在于主干服务器源代码的 session_controller 类中,该类处理会话验证 URL。该类使用 sessions_controller.rb 机制,该机制优先考虑 XFH 而不是原始主机头。研究人员的利用代码如下:
POST /api/v1/sessions HTTP/1.1
Host: trunk.cococapods.org
Content-Type: application/json; charset=utf-8
Accept: application/json; charset=utf-8
User-Agent: CocoaPods/1.12.1
Accept-Encoding: gzip, deflate
X-Forwarded-Host: research.evasec.io
Content-Length: 78
{
"email":"research@evasec.io