在上个月,evasec.io 的安全研究人员联系了我们,报告了 CocoaPods Trunk(处理 Pod 更新的服务器)中的三个独立漏洞。我们一直在与 evasec 合作,在这些问题出现时对其进行修补。综合考虑这三个问题,我觉得我们需要再次重置所有用户会话,这就是我写博客文章而不是处理本周刚刚发布的 Puzzmo的原因。
针对 Trunk 报告了三个关键问题,这些问题已得到及时修复
- 1. 当有人从 Pod 中删除所有先前的维护者时,仍然可以使用'认领你的 Pod'流程来接管 Pod
- 2. 发送的用于验证电子邮件地址的电子邮件可能会被欺骗,从而更改为指向第三方的链接
- 3. 验证电子邮件地址的 Trunk 部分可用于在 Trunk 服务器上执行 shell 命令
能够在服务器上执行任意 shell 命令使可能的攻击者能够读取我们的环境变量,这些变量可用于写入 CocoaPods/Specs 存储库并读取 Trunk 数据库。能够欺骗人们点击将他们带到第三方网站的链接可用于窃取他们的会话密钥。我无法保证这两者都不会发生,我宁愿采取安全措施。
这意味着你需要再次登录 Trunk 才能部署任何新的 Podspecs。如果你现在使用存储的 ENV VAR 与 CocoaPods 合作进行自动化部署,这将会中断,你需要再次pod trunk register
并替换你的COCOAPODS_TRUNK_TOKEN
。我们很抱歉,我知道这很糟糕,但这也保证你是唯一一个对你的 Pod 拥有写访问权限的人。
如果你不是 Pod 作者,则无需执行任何操作.
evasec.io仍在编写有关漏洞利用方式的完整技术细节,因此,当他们的撰写工作完成后,我将用指向其撰写内容的链接更新此帖子,并撰写一篇包含更高级别详细信息的新博客文章,向不熟悉服务器架构的人员描述其工作原理。
继续阅读 →
我很高兴地宣布,Emerge Tools 现已赞助 CocoaPods 的网络托管费用!
我们非常感谢 Emerge 介入帮助我们解决此问题。CocoaPods.org、Trunk 以及我们维护的所有其他网站是 CocoaPods 生态系统的重要组成部分,我们很高兴得到 Emerge 的支持来维持它们的运行。
继续阅读 →
CocoaPods 1.11 将最低 Ruby 版本提高到 2.6,同时增加了对 Ruby 3.0 的支持。它还增加了对“按需资源”的支持,并包含了许多错误修复和改进!
继续阅读 →
将新的 CocoaPod 上传到 Podspecs 中央存储库 (trunk) 的服务器端验证部分可能会被利用,在 trunk 服务器上执行任意 shell 命令。
今天早上,Max Justicz 联系了我们,他为我们提供了出色的技术说明,并展示了如何自己触发它。该漏洞是未经清理的用户输入通过 git 调用参数而产生的,该参数可用于发送远程有效负载。
能够在服务器上执行任意 shell 命令,使可能的攻击者能够读取环境变量,这些变量可用于写入 CocoaPods/Specs 存储库和读取 trunk 数据库。
这意味着您需要再次登录 trunk 才能部署任何新的 Podspecs。如果您现在正在自动部署到 CocoaPods,这将中断,您需要再次 pod trunk register
并替换您的 COCOAPODS_TRUNK_TOKEN
。我们很抱歉,我知道这很糟糕,但它也保证您是唯一一个对您的 pod 具有写入权限的人。
如果您不是 pod 作者,则无需执行任何操作。
继续阅读 →
CocoaPods 1.10 不再支持 Ruby 2.0,增加了对 Ruby 2.7 的支持,并增加了对 Xcode 12 的初始支持以及改进的 XCFramework 集成流程!
继续阅读 →
CocoaPods 1.9 增加了对 XCFrameworks、pod 作者的基于配置的依赖项、生成方案中的代码覆盖率以及其他增强功能和错误修复的支持!
继续阅读 →
CocoaPods 1.8 将 CDN 切换为默认规范存储库源,并带来了一些增强功能!
继续阅读 →
CocoaPods 1.7.2 为 trunk 规范存储库 带来了 CDN 支持的最终版本。
继续阅读 →
CocoaPods 1.7.0 大幅扩展了先前版本中改进的基础设施,支持多个 Swift 版本、应用规范等!
继续阅读 →
CocoaPods 1.6.0 的发布继续关注大型项目的稳定性、性能和可扩展性。
继续阅读 →