作者: 张培德、李高坤 @ vulpecker team
本月一共有105个安全漏洞,其中
Critical:13个
High:79个
Moderate13个
其中:属于Aosp部分的有26个、驱动和kernel的有79个。
下面是与7月份的漏洞数量对比图:
漏洞分布情况对比图:
漏洞详细情况分析整理
1、Aosp高风险安全漏洞
Aosp的漏洞主要集中在mediaserver模块中,这也是最近安全研究漏洞挖掘的热点模块。下图是这个月aosp漏洞的整理。
A)以下高风险安全漏洞在mediaserver组件中,可以被任意app触发。
CVE-2016-3819、CVE-2016-3820、CVE-2016-3821是三个Critical级的远程代码执行漏洞。分别影响libstagefright_soft_h264dec.so、libnbaio.so、libstagefright_soft_avcdec.so三个so文件。
Mediaserver远程代码执行漏洞可能允许攻击者使用专门制作的媒体文件来攻击手机,在解析媒体文件时会发生内存崩溃。这个漏洞由于可能在Mediaserver进程中发生远程代码执行,所有被评为Critical。Mediaserver进程有权限访问音频和视频流,第三方应用程序不能。
CVE-2016-3819是一个h264编码的MPEG4文件能构造一个足够大的picSizeInMbs,导致在h264bsdInitDpb内分配一块足够大的内存,导致堆溢出。
CVE-2016-3820是libavcodec H.264的解码器在解析MPEG4文件时会导致堆溢出。
CVE-2016-3821是MediaPlayer中的一个use-after-free漏洞。
CVE-2016-3823、CVE-2016-3824、CVE-2016-3825、CVE-2016-3826是四个High级别的提权漏洞。分别影响libOmxVenc.so、libstagefright_omx.so、libaudioflinger.so三个so文件。
权限提升漏洞可以被本地的恶意应用用来执行恶意代码进行提权,mediaserver的漏洞,可以被用来提权到system。
CVE-2016-3823是由于libOmxVenc.so中的omx_video::empty_this_buffer_proxy()会使用memcpy函数拷贝一块数据到0xdeadbeef,可以通过精心构造的数据控制0xdeadbeef来进行提权。
CVE-2016-3824是由于libOmxVenc.so中的omx_video::allocate_output_buffer()会分配一个固定的堆缓冲区,当OMXNodeInstance::emptyBuffer被用作一个输出缓冲区计数器,在调用CopyToOMX时会发生堆溢出。
CVE-2016-3825是omx_video::allocate_input_buffer()可以被通过精心构造的binder request分配一块错误大小的堆内存,导致堆溢出。
CVE-2016-3826是PreProcessing.cpp这个C++文件中的EFFECT_CMD_GET_PARAM会导致整形溢出,造成堆溢出。
B)以下高风险安全漏洞在libjhead组件中,可以被任意app触发。
CVE-2016-3822是High级的远程代码执行漏洞,影响libjhead.so。
libjhead.so的远程代码执行漏洞可以被攻击者用一个特殊构造的文件在当前环境下执行任意代码。
CVE-2016-3822是一个构造的Offsetval长度传递到libjhead中的ProcessExifDir方法后会导致越界写内存。
C)其他风险级别较低的受影响so文件
libstagefright_soft_hevcdec.so、libcrypto.so、libcamera_client.so、libstagefright.so、libsurfaceflinger.so、libwifi-service.so、bluetooth.default.so、libconscrypt_jni.so
2、kernel高风险安全漏洞
A)CVE-2015-2686、CVE-2016-3841、CVE-2016-3857是Critical级的提权漏洞。
CVE-2015-2686是在net/socket.c文件中,影响linux内核3.19.3之前版本。由于sendto和recvfrom系统调用没有验证数据范围,本地权限用户,可以利用iov_iter接口的copy_from_iter方法来进行提权。
CVE-2016-3841是特定的内核networking组件会导致的use-after-free漏洞。
CVE-2016-3857是sys_oabi_epoll_wait方法没有验证传递的参数。修复方法是直接禁用了OABI支持,删除了代码。
B) CVE-2015-1593、CVE-2016-3672、CVE-2016-2544、CVE-2016-2546、CVE-2014-9904、CVE-2012-6701、
CVE-2016-3845、CVE-2016-3843是High级的提权漏洞。
CVE-2015-1593是在linux内核3.19.1之前的版本,64位上栈随机特性在处理按位左移时返回值类型不正确,可以被攻击者利用绕过ASLR。
CVE-2016-3672是arch/x86/mm/mmap.c中的arch_pick_mmap_layout方法在随机化基地址时有错误,可以被用来绕过ASLR。
CVE-2016-2544是在sound/core/seq/seq_queue.c中的queue_delete方法,有一个race condition(正确性依靠于事件发生的相对时间)有use-after-free漏洞,可以被使用ioctl触发。
CVE-2016-2546是在sound/core/timer.c文件中(linux内核4.4.1之前),mutex类型不正确导致的use-after-free漏洞,可以被精心构造的ioctl触发。
CVE-2014-9904是在snd_compress_check_input方法中的整形溢出检查会被绕过。
CVE-2012-6701是在fs/aio.c文件中的整形溢出漏洞(在linux内核3.4.1之前),能够被本地用户触发的拒绝服务漏洞,或者其他未发现的影响。
CVE-2016-3845是传递到on_cmd_write方法的计数变量没有验证。
CVE-2016-3843是一些内核为开发者使用的子模块,在正常发行版中不应该存在。
3、高通和MTK的驱动漏洞
A)高通Wi-Fi驱动中存在远程代码执行漏洞
CVE |
References |
Severity |
Updated kernel versions |
Date reported |
CVE-2014-9902 |
ANDROID-28668638 |
Critical |
3.4 |
Mar 31, 2014 |
CVE-2014-9902是一个高通Wi-Fi驱动模块中的漏洞,可以被远程攻击者利用来在内核空间中远程执行代码,可能导致整个设备被完全控制,因此被定义为critial级别。找到patch信息,很容易就能判断是个整型溢出漏洞在源代码树中找到相关文件可以看到这个漏洞相关文件最终被编译进了设备相关的驱动文件prima_wlan.ko(msm8960)或者pronto_wlan.ko(msm 8974、msm8226、msm8610)。
B)高通组件提权漏洞
高通组件包含了bootloader、camera driver、character Driver、networking、sound driver 和video driver等。下面这张表格中是8月的高通组件相关的漏洞。
CVE |
References |
Severity |
Updated kernel versions |
Date reported |
CVE-2014-9863 |
ANDROID-28768146 |
Critical |
3.4 |
Apr 30, 2014 |
CVE-2014-9864 |
ANDROID-28747998 |
High |
3.4 |
Mar 27, 2014 |
CVE-2014-9865 |
ANDROID-28748271 |
High |
3.4 |
Mar 27, 2014 |
CVE-2014-9866 |
ANDROID-28747684 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9867 |
ANDROID-28749629 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9868 |
ANDROID-28749721 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9869 |
ANDROID-28749728 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9870 |
ANDROID-28749743 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9871 |
ANDROID-28749803 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9872 |
ANDROID-28750155 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9873 |
ANDROID-28750726 |
High |
3.4 |
Mar 31, 2014 |
CVE-2014-9874 |
ANDROID-28751152 |
High |
3.4, 3.10, 3.18 |
Mar 31, 2014 |
CVE-2014-9875 |
ANDROID-28767589 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9876 |
ANDROID-28767796 |
High |
3.4, 3.10 |
Apr 30, 2014 |
CVE-2014-9877 |
ANDROID-28768281 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9878 |
ANDROID-28769208 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9879 |
ANDROID-28769221 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9880 |
ANDROID-28769352 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9881 |
ANDROID-28769368 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9882 |
ANDROID-28769546 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9883 |
ANDROID-28769912 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9884 |
ANDROID-28769920 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9885 |
ANDROID-28769959 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9886 |
ANDROID-28815575 |
High |
3.4 |
Apr 30, 2014 |
CVE-2014-9887 |
ANDROID-28804057 |
High |
3.4 |
Jul 3, 2014 |
CVE-2014-9888 |
ANDROID-28803642 |
High |
3.4 |
Aug 29, 2014 |
CVE-2014-9889 |
ANDROID-28803645 |
High |
3.4 |
Oct 31, 2014 |
CVE-2015-8937 |
ANDROID-28803962 |
High |
3.4, 3.10 |
Mar 31, 2015 |
CVE-2015-8938 |
ANDROID-28804030 |
High |
3.10 |
Mar 31, 2015 |
CVE-2015-8939 |
ANDROID-28398884 |
High |
3.4 |
Apr 30, 2015 |
CVE-2015-8940 |
ANDROID-28813987 |
High |
3.10 |
Apr 30, 2015 |
CVE-2015-8941 |
ANDROID-28814502 |
High |
3.4, 3.10 |
May 29, 2015 |
CVE-2015-8942 |
ANDROID-28814652 |
High |
3.10 |
Jun 30, 2015 |
CVE-2015-8943 |
ANDROID-28815158 |
High |
3.4 |
Sep 11, 2015 |
CVE-2014-9891 |
ANDROID-28749283 |
Moderate |
3.4 |
Mar 13, 2014 |
CVE-2014-9890 |
ANDROID-28770207 |
Moderate |
3.4 |
Jun 2, 2014 |
CVE-2014-9863 这是一个存在于diag driver中的漏洞。在diag drive中存在一个整型下溢问题,这可能导致内存泄露,存在别利用提权风险,因此被定为critical级别。补丁中条件语句添加了边界检查来保证正确性。
CVE-2014-9864和CVE-2014-9865都是Qualcomm Secure Execution Communicator driver中的漏洞,Qualcomm Secure Execution Communicator driver为用户空间和QSEE(Qualcomm Secure Execution Environment)之间的通信提供接口。补丁对IOCTL中参数类型和合法性进行了校验。
CVE-2014-9866 是高通的csid driver中的一个漏洞,补丁对num_cid进行了上下边界的检查,从而保证从用户空间中传递进来的num_cid在合法的1到16这个区间。
CVE-2014-9870 是在ARM MPCore(Multi-Processor Core)多核心架构下添加了对每个thread寄存器的保护操作来代替之前的清除操作。即在上下文切换和fork()操作的时候保存用户读写寄存器TPIDRURW的值,来避免总是必须要在copy_thread函数中来进行TPIDRURW的读操作,这样做十分不安全,可能被攻击者利用来提升权限。
CVE-2014-9881 是Qualcomm IRIS FM support模块中的漏洞。其中将unsigned int转换为int以及将int 转换为unsigned int存在缓冲区溢出风险。补丁对此进行了修补。默认情况下这个模块是不会被编译进内核的,如果设备搭载了高通的FM芯片组(IRIS)则可能受影响。
CVE-2014-9882 是Qualcomm IRIS FM support模块中的漏洞,在从用户空间传递数据到driver的时候添加driver中接收这些数据的buffer大小检查操作,否则可能导致数组越界访问问题,存在权限提升风险。CVE-2014-9885是高通8974温度检测的AD转换驱动中的漏洞在一个snprintf函数中添加了格式模板,来避免引起安全问题。
CVE-2014-9887是Qualcomm Secure Execution Communicator driver中的漏洞,Qualcomm Secure Execution Communicator driver为用户空间和QSEE(Qualcomm Secure Execution Environment)之间的通信提供接口。补丁检查了qseecom_send_modfy_cmd的cmd_req_buf pointer offset的有效性,并且 对cmd buffer 的地址是否在shared bufffer的范围内进行判断。
CVE-2014-9888 是搭载高通芯片组设备上的DMA驱动模块中的漏洞。 通过DMA 映射的内存被标记为可执行的,这不是我们希望的,patch对此进行了修补。
CVE-2015-8937 是diag模块中的漏洞,Diag driver持有socket进程的task structure甚至当进程已经退出了以后。这个漏洞的补丁就是,在进程退出时清理内部的task structure结构句柄。
CVE-2015-8939 是msm video driver中的漏洞,补丁进行了一些边界检查操作来防止出现一些未定义行为的发生。
CVE-2015-8941 这个漏洞是msm camera driver 中添加了一些数组越界检查操作。
CVE-2015-8942 存在于msm camera driver中,在使用CPP去操作iommu上下文时必须检查stream的状态。
CVE-2015-8943 漏洞位于高通的video驱动中,漏洞可能引发对未mapped的buffer的unmap操作问题,因此补丁在unmap操作前添加了是否mapped的校验代码。
CVE-2014-9891 是Qualcomm Secure Execution Communicator driver中的漏洞,Qualcomm Secure Execution Communicator driver为用户空间和QSEE(Qualcomm Secure Execution Environment)之间的通信提供接口。ION memory是用来userspace的process之间或者内核中的模块之间进行内存共享的,也是Android上kernel的一些变化,在用户空间通过IOCTL操作时,data指向的location的合法性未进行检测,可能导致指向其他未分配的无效内存从而导致crash或者指向其它不合法内存引起不可预期的影响。
CVE-2014-9890 这个漏洞是I2C驱动中I2C command的长度问题,因为I2C command包含10 bytes的data和1 byte的WR command,因此为11字节,而未修补之前的定义是data[10],可能造成数组越界问题。
被攻击者合理利用可能获得权限提升。
C)MTK驱动中的漏洞
CVE |
References |
Severity |
Updated kernel versions |
Date reported |
CVE-2016-3852 |
ANDROID-29141147 |
High |
3.10 |
Apr 12, 2016 |
MTK Wi-Fi驱动中的本月被爆存在CVE-2016-3852漏洞,这是一个信息泄露漏洞。在驱动模块的priv_get_int函数中未对传递进来的prIwReqData变量进行校验,可通过传入非法值造成信息泄露问题,结合其他类型的漏洞可被用来作为权限提升的跳板,因此被定为High级别。补丁对传入参数的边界进行了校验。
4、受影响进程列表
还没有评论,来说两句吧...