苹果macOS与iOS中ATS协议的问题 - The Trail of Bits博客
Will Brattain
2023年10月30日
漏洞披露
Trail of Bits公开披露了一个影响iOS 17之前版本、macOS 14之前版本、tvOS和watchOS 10之前版本的漏洞(CVE-2023-38596)。该漏洞存在于苹果的App Transport Security(ATS)协议处理中。我们发现苹果的ATS未能要求对IP地址和*.local主机名的连接进行加密,这可能使应用程序容易受到信息泄露漏洞和中间人(MitM)攻击。
注意:苹果于2023年9月18日发布公告,确认CVE-2023-38596已修复。
背景
ATS是一个网络安全功能,默认在链接到iOS 9+和macOS 10.11+软件开发工具包(SDK)的应用程序中启用。ATS要求应用程序的网络连接使用传输层安全(TLS)协议。在iOS 10版本和macOS 10.12版本之前,ATS默认不允许连接到.local域和IP地址,但允许配置例外。从iOS 10和macOS 10.12开始,默认允许连接到.local域和IP地址。
概念验证
我们创建了一个受ATS保护的简单应用程序,该应用程序向用户指定的URL发送POST请求。下表总结了我们执行的测试。值得注意的是,为了演示ATS协议处理中的缺陷,我们向未加密的IP地址和*.local域提交了POST请求,并观察到请求在不应成功的情况下成功了,如图1所示。
注意:带有IP地址(http://174.138.48.47/)和本地域(http://ats-poc.local)的URL都映射到http://ie.gy/。
图1:我们向未加密的IP地址(左)和*.local域(右)提交了POST请求。两个请求都成功了。
这种行为表明,ATS要求未在对.local域和IP地址的请求上强制执行。因此,iOS和macOS应用程序通过URL加载系统建立的网络连接可能容易受到信息泄露漏洞和MitM攻击的影响——这两者都对传输数据的机密性和完整性构成风险。
攻击场景
一个应用程序设计用于安全地将数据传输到WebDAV服务器。该应用程序依赖ATS来确保到用户提供的URL(WebDAV服务器)的流量使用加密保护。当添加URL时,应用程序会向其发出请求,如果ATS不阻止连接,则假定它是安全的。
用户无意中添加了一个URL并在表单中指定了IP地址(例如,http://174.138.48.47/),即使未加密,ATS也允许该连接。用户然后从不安全的网络(如商场WiFi)访问该URL。由于流量未加密,能够捕获网络流量的恶意用户可以访问发送到服务器的所有数据,包括基本身份验证凭据,这反过来使攻击者能够恢复存储在WebDAV服务器上且可被受感染用户访问的所有敏感数据。
检查您的应用程序!
既然苹果已强制对.local和IP地址进行加密,开发人员应检查其应用程序在依赖这些地址时是否继续工作。
协调披露
作为披露过程的一部分,我们首先向苹果报告了漏洞。披露时间线如下:
- 2022年10月21日:发现ATS漏洞。
- 2022年11月3日:向苹果披露漏洞,并沟通计划于12月5日公开披露。
- 2022年11月14日:苹果请求延迟至2023年2月;我们要求提供延迟必要的详细信息。
- 2022年11月16日:在苹果解释其内部测试和验证过程后同意延迟。
- 2022年11月28日:向苹果请求状态更新。
- 2022年11月29日:苹果确认仍在调查漏洞。
- 2022年12月9日:苹果确认并继续调查。
- 2023年1月31日:由于对应用程序/开发人员的潜在影响而延迟发布。
- 2023年3月31日:向苹果请求状态更新。
- 2023年4月10日:苹果表示正在准备关于修复时间表的更新。
- 2023年4月18日:修复表明修复将在WWDC后的测试版发布中准备就绪。
- 2023年9月18日:苹果发布公告确认CVE-2023-38596已修复。
如果您喜欢这篇文章,请分享:
Twitter LinkedIn GitHub Mastodon Hacker News
页面内容
背景
概念验证
攻击场景
检查您的应用程序!
协调披露
近期文章
Trail of Bits的Buttercup在AIxCC挑战中获得第二名
Buttercup现已开源!
AIxCC决赛:记录表
攻击者的提示注入工程:利用GitHub Copilot
作为新员工发现NVIDIA Triton中的内存损坏
© 2025 Trail of Bits。
使用Hugo和Mainroad主题生成。