返回

iOS 解压缩漏洞:路径穿越 RCE 解析

IOS

iOS 解压缩:路径穿越漏洞解析

盘古实验室公布了一个由目录穿越导致 RCE 的漏洞,称为 ZipperDown。该漏洞影响广泛,原因在于大多数 iOS 应用都使用 SSZipArchive 或 Ziparchive 来解压 Zip 文件,而这些库在处理 Zip 内文件名时没有进行必要的校验。

漏洞详情

在解压 Zip 文件时,SSZipArchive 和 Ziparchive 库可能会将恶意文件解压到任意目录,从而导致路径穿越漏洞。这是因为这些库未对 Zip 文件中的文件名进行适当的验证,允许攻击者在 Zip 文件中包含指向任意目录的路径。

例如,攻击者可以在 Zip 文件中包含一个名为 "/tmp/myfile" 的文件。当此 Zip 文件被解压时,恶意文件将被解压到 "/tmp" 目录下,该目录通常对用户具有写权限。这为攻击者提供了在目标设备上执行任意代码的机会。

漏洞影响

ZipperDown 漏洞影响所有使用 SSZipArchive 或 Ziparchive 库的 iOS 应用。这些应用范围广泛,包括社交媒体应用程序、文件管理器和文档阅读器。

缓解措施

缓解 ZipperDown 漏洞的最佳方法是升级到最新版本的 SSZipArchive 或 Ziparchive 库。这些新版本已修复了导致漏洞的根本问题。

开发人员还应仔细检查他们应用程序中使用的所有第三方库,以确保这些库是最新的且没有已知漏洞。

结论

ZipperDown 漏洞是一个严重的漏洞,可能导致 iOS 设备上的远程代码执行。开发人员应采取措施立即修补其应用程序,以保护用户免受此漏洞的侵害。

深入分析

SSZipArchive 和 Ziparchive 库

SSZipArchive 和 Ziparchive 是用于在 iOS 设备上解压 Zip 文件的两个流行库。这两个库都是开源的,并且被广泛用于各种应用程序中。

在处理 Zip 文件时,这些库将文件解压到由 destinationPath 参数指定的目录中。如果不指定 destinationPath,则文件将被解压到应用程序的沙盒目录中。

漏洞根源

ZipperDown 漏洞源于 SSZipArchive 和 Ziparchive 库未能验证 Zip 文件中的文件名。这允许攻击者在 Zip 文件中包含指向任意目录的路径。

当这些库解压包含恶意文件名的 Zip 文件时,恶意文件将被解压到指定目录中。这为攻击者提供了执行任意代码的机会,因为他们现在可以在目标设备上写文件。

漏洞利用示例

以下是利用 ZipperDown 漏洞的一个示例:

  1. 攻击者创建一个包含名为 "/tmp/myfile" 的文件的 Zip 文件。
  2. 攻击者将此 Zip 文件发送到目标设备。
  3. 目标设备上的应用程序使用 SSZipArchive 或 Ziparchive 库解压 Zip 文件。
  4. 恶意文件被解压到 "/tmp" 目录下。
  5. 攻击者利用 "/tmp/myfile" 文件在目标设备上执行任意代码。

影响范围

ZipperDown 漏洞影响所有使用 SSZipArchive 或 Ziparchive 库的 iOS 应用。这些应用范围广泛,包括:

  • 社交媒体应用程序
  • 文件管理器
  • 文档阅读器
  • 照片编辑器
  • 游戏

缓解措施

缓解 ZipperDown 漏洞的最佳方法是升级到最新版本的 SSZipArchive 或 Ziparchive 库。这些新版本已修复了导致漏洞的根本问题。

开发人员还应仔细检查他们应用程序中使用的所有第三方库,以确保这些库是最新的且没有已知漏洞。

结论

ZipperDown 漏洞是一个严重的漏洞,可能导致 iOS 设备上的远程代码执行。开发人员应采取措施立即修补其应用程序,以保护用户免受此漏洞的侵害。