macOS CVM服务器漏洞曝光

admin 2021年10月18日21:50:39安全新闻评论15 views1840字阅读6分8秒阅读模式

macOS CVM服务器漏洞曝光

研究人员在macOS、iOS和iPadOS的CVM服务器中发现1个安全漏洞。

研究人员在CVM服务器(Core Virtual Machine Server,核心虚拟机服务器)中发现一个安全漏洞,漏洞CVE编号为CVE-2021-30724,攻击者利用该漏洞可以进行权限提升。受影响的设备包括运行macOS Big Sur 11.4、iOS 14.6和 iPadOS 14.6的设备。

macOS CVM服务器漏洞曝光
CVMServer

CVMServer是XPC服务和以root运行的处理XPC请求的系统daemon。XPC是苹果实现的负责不同进程之间通信的低级通信机制。客户端通过XPC相关的API来发送XPC请求消息。然后,服务器会接收消息并处理。其中最常使用的客户端是用OpenCL框架编写的。其主要逻辑是使用switch结构来处理不同类型的XPC消息。图1是CVMServer switch结构逻辑的示例:

macOS CVM服务器漏洞曝光

图1. CVMServer switch结构处理消息逻辑示例

macOS CVM服务器漏洞曝光
CVE-2021-30724漏洞

该问题存在于XPC请求消息处理器中,具体来说是使用OpenCL源码来处理请求(case msgType=18)构造元素的过程中。

macOS CVM服务器漏洞曝光

图2. CVMServer Case 18 逻辑

图2是存在漏洞的逻辑,item[3*count]是映射长度,会从xpc_shmem_map返回。同时,beginOffset是由XPC请求消息控制的(135行)。如果item[3*count]的值小于beginOffset,那么根据case 18的逻辑,remainLen的值就会出现整数溢出。引发144行的检查被绕过。因此,该漏洞可以通过指定item[count]=accessDataLen 为一个大整数的方式来触发,引发越界内存访问和潜在的权限提升。

macOS CVM服务器漏洞曝光
漏洞触发

如图1所示,flag context->attached是在case 4中设置的。也就是说,要发送请求(case msgType=18),CVMS服务必须被附加,而且XPC请求msgType=4也要被发送。要发送XPC请求给服务,首先要建立连接。通过搜索到API调用_xpc_connection_create_mach_service的交叉引用,研究人员发现了一个名为com.apple.cvmsServ的服务,然后就可以建立了连接。

macOS CVM服务器漏洞曝光

然后,就可以附加上服务和通过调试获得的参数。

macOS CVM服务器漏洞曝光

在添加了CVMS服务和发送XPC请求msgType=4后,就可以发送请求存在漏洞的请求(case msgType=18)。为更好地帮助大家理解,研究人员给出了XPC消息结构图,如图3所示。

从97到105行,可以看到request[“source”]是一个XPC数组,其中保存了源码数据列表。第108行,每个数组项被分配了32字节的数据。

macOS CVM服务器漏洞曝光

图3. source_data_array布局

111行到156行的do-while循环用每个数据源值填充了数组项。数据源值的类型是xpc_type_data或xpc_type_shmem。这里的逻辑表明地址范围[accessBeginPointer, accessBeginPointer+accessDataLength)必须是[mappedBaseAddress, mappedBaseAddress+mappedLength)的子集。然后会检查accessDataLength值是否小于mappedLength减去beginOffset值。要触发该漏洞就必须要绕过该检查。这些值都可以通过XPC请求消息来控制。

在第138行,有一个beginOffset值的检查,必须小于4k。但是从xpc_shmem_map 返回的mappedLength一般会被设置为4k。这就触发了该漏洞。

然后就可以绕过通过整数溢出的方式来绕过144行的检查,即通过指定大数值的方式触发越界内存访问。触发代码如图5所示。

macOS CVM服务器漏洞曝光

图4. MappedLength被修改为更小的值

macOS CVM服务器漏洞曝光

图5. 漏洞触发代码

完整PoC参见GitHub:https://gist.github.com/jhftss/1bdb0f8340bfd56f7f645c080e094a8b

参考及来源:https://www.trendmicro.com/en_us/research/21/f/CVE-2021-30724_CVMServer_Vulnerability_in_macOS_and_iOS.html

macOS CVM服务器漏洞曝光

macOS CVM服务器漏洞曝光

本文始发于微信公众号(嘶吼专业版):macOS CVM服务器漏洞曝光

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月18日21:50:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  macOS CVM服务器漏洞曝光 http://cn-sec.com/archives/396862.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: