热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

stm32c8t6的can通信实验代码_【安全风险通告】奇安信代码安全实验室报告多枚高危漏洞,QEMUKVM虚拟机逃逸漏洞安全风险通告...

近日,奇安信代码安全实验室研究员为RedHat报告多个漏洞(CVE-2020-14364、CVE-2020-10756、CVE-2020-12829、CVE-2020
3ed6f2911bb1a2d14c19e09d0294c509.gif

近日,奇安信代码安全实验室研究员为Red Hat报告多个漏洞(CVE-2020-14364、CVE-2020-10756、 CVE-2020-12829、 CVE-2020-14415、 CVE-2020-15863和CVE-2020-16092),并协助其修复,其中CVE-2020-14364(数组越界读写漏洞)可直接造成虚拟机逃逸且影响范围巨大。8月24日,QEMU官方更新了安全补丁,修复了此漏洞(CVE-2020-14364)。QEMU的USB后端在实现USB控制器与USB设备通信时存在越界读写问题,成功利用该漏洞可越界读写某一个堆之后 0xffffffff 的内容,可轻易实现完整的虚拟机逃逸。

3ed6f2911bb1a2d14c19e09d0294c509.gif奇安信 CERT安全通告

近日,奇安信代码安全实验室研究员为Red Hat报告多个漏洞(CVE-2020-14364、CVE-2020-10756、 CVE-2020-12829、 CVE-2020-14415、 CVE-2020-15863和CVE-2020-16092),并协助其修复,其中CVE-2020-14364(数组越界读写漏洞)可直接造成虚拟机逃逸且影响范围巨大。8月24日,QEMU官方更新了安全补丁,修复了此漏洞(CVE-2020-14364)。QEMU的USB后端在实现USB控制器与USB设备通信时存在越界读写问题,成功利用该漏洞可越界读写某一个堆之后 0xffffffff 的内容,可轻易实现完整的虚拟机逃逸。

Red Hat发布了补丁更新公告以及致谢公告,公开致谢奇安信代码安全实验室研究人员:

cbfb18ce301108676892d95e1851087e.png

417eb48489be62ed5487536c29df709f.png漏洞描述

QEMU(quick emulator)是一款由Fabrice Bellard等人编写的免费的可执行硬件虚拟化开源托管虚拟机(VMM)QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。8 月 24 日,QEMU 官方更新了安全补丁,修复了一处数组越界读写的漏洞(CVE-2020-14364)。

QEMU的 USB 仿真器中存在越界读/写访问问题。当处理来自 guest 的 USB 数据包时,如果do_token_{in,out}例程中的 'USBDevice->setup_len' 超过USBDevice->data_buf[4096],则会产生越界读/写访问问题。Guest 用户可利用该缺陷使 QEMU 进程崩溃,从而导致拒绝服务或可能以主机上QEMU 进程的权限执行任意代码。该漏洞能够直接造成虚拟机逃逸且影响范围巨大。

复现截图:

5ee623dc727dd008aa36688c387ae168.png

98e0f056428c1b6e577667d1c37afe92.png

5a239a98803f576ae895bdaacf073e1d.png

417eb48489be62ed5487536c29df709f.png风险等级

奇安信 CERT风险评级为:高危

风险等级:蓝色(一般事件)

影响范围

QEMU全版本

417eb48489be62ed5487536c29df709f.png处置建议

参考以下补丁进行漏洞修复:

https://www.openwall.com/lists/oss-security/2020/08/24/3/1417eb48489be62ed5487536c29df709f.png

技术分析

QEMU的USB后端在实现USB控制器与USB设备通信时存在越界读写漏洞可能导致虚拟机逃逸USB总线通过创建一个USBpacket对象来和USB设备通信.

Usbpacket对象中包含以下关键内容

struct USBPacket { /* Data fields for use by the driver. */ int pid; uint64_t id; USBEndpoint *ep; ....};

其中pid表明packet的类型,存在三种类型in,out,setup,ep指向endpoint对象,通过此结构定位目标usb设备.

数据交换为usbdevice中缓冲区的data_buf与usbpacket对象中使用usb_packet_map申请的缓冲区两者间通过usb_packet_copy函数实现,为了防止两者缓冲区长度不匹配,传送的长度由s->setup_len限制

case SETUP_STATE_DATA: if (s->setup_buf[0] & USB_DIR_IN) { int len = s->setup_len - s->setup_index; if (len > p->iov.size) { len = p->iov.size; } usb_packet_copy(p, s->data_buf + s->setup_index, len); s->setup_index += len; if (s->setup_index >= s->setup_len) { s->setup_state = SETUP_STATE_ACK; } return; }

漏洞存在于s->setup_len赋值的过程do_token_setup中.

s->setup_len &#61; (s->setup_buf[7] <<8) | s->setup_buf[6]; if (s->setup_len > sizeof(s->data_buf)) { fprintf(stderr, "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n", s->setup_len, sizeof(s->data_buf)); p->status &#61; USB_RET_STALL; return; }

虽然进行了校验&#xff0c;但是由于在校验前&#xff0c;s->setup_len的值已经被设置导致之后的do_token_in或者do_token_out中使用usb_packet_copy时会产生越界读写漏洞。

417eb48489be62ed5487536c29df709f.png参考资料[1] https://access.redhat.com/security/cve/cve-2020-14364417eb48489be62ed5487536c29df709f.png时间线2020年8月25日&#xff0c;奇安信 CERT发布安全风险通告奇安信 CERT

奇安信CERT致力于

第一时间为企业级客户提供

安全风险通告和有效的解决方案  

7d1001cd87ba65fbfe87e7455fa16e8a.png



推荐阅读
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 标题: ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
author-avatar
心之约会446
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有