2016-12-09

本月一共有79个安全漏洞,其中Critical 12个,High 46个,Moderate 20个,Low 1个其中属于Aosp部分的有23个,驱动和kernel的有56个。

 

下面是与10月份的漏洞数量对比图:

 

漏洞分布情况对比图:

漏洞详细情况分析整理

  • Aosp高风险安全漏洞

下图是这个月aosp漏洞的整理

A)以下高风险安全漏洞在mediaserver组件中,可以被任意app触发。

CVE-2016-3862是一个Critical级的mediaserver漏洞。影响framework.jar。

Mediaserver的远程代码执行漏洞能够通过精心构造一个媒体文件来破坏内存,达到远程利用的效果。

CVE-2016-3862这次的更新是对一个旧的漏洞的升级。这次更新是在使用ExifInterface加载大量的图片时,如果I/O出现问题后可以返回。

 

CVE-2016-6761、CVE-2016-6760、CVE-2016-6759、CVE-2016-6758、CVE-2016-6704是五个High级别的mediaserver漏洞。分别影响libOmxVenc.so、libOmxVdec.so、libvisualizer.so,libqcomvisualizer.so四个文件。

Mediaserver的提权漏洞可以被手机里的任意app利用,来获取更高的权限,并在特权进程执行任意代码。

CVE-2016-6761是在omx_video::allocate_input_buffer()方法里使用m_sInPortDef.nBufferCountActual申请了一段内存。这段可以被通过使用一个畸形binder请求修改,导致堆溢出。

CVE-2016-6760是omx_vdec::allocate_output_headers()申请了一段内存,大小是drv_ctx.op_buf.actualcount。但是drv_ctx.op_buf.actualcount可以通过一个畸形的binder访问修改,导致堆溢出。

CVE-2016-6759是omx_vdec::empty_this_buffer()没有验证要清空buffer的index,可能导致越界写。

CVE-2016-6758是omx_vdec::empty_this_buffer_proxy()没有校验buffer。如果一个buffer是在secure memory申请的,在memcpy之前调用了omx_vdec::empty_this_buffer_proxy()可能导致堆溢出。

CVE-2016-6704的补丁是对上一次补丁的一次升级。修补的问题是在编译的debug版本中会返回一个null引用。

 

B)以下高风险安全漏洞在curl和libcurl模块中。

CVE-2016-5419、CVE-2016-5420、CVE-2016-5421是三个High级的远程代码执行漏洞。

这三个漏洞是可能导致中间人攻击。被评为High是因为需要一个伪造的证书。Patch位于https://curl.haxx.se/changes.html#7_50_1

 

C)其他High级别的漏洞

CVE-2016-6762是libziparchive一个权限提升的漏洞。问题的根源是两个32位的整型相加可能产生溢出并且和第三个32位整型相比较。最终在控制mmaped的内存使用一个被控制的offset。解引用的地址是可以被控制的,最终导致内存破坏或权限提升。

 

D)其他风险级别较低的受影响文件

TeleService.apk、libstagefright.so、services.jar、libstagefright.so、libchromium_net.so、libframesequence.so、libwifi-service.so、libstagefright_soft_avcdec.so

 

  • kernel高风险安全漏洞

CVE-2016-4794 是内核内存子系统中一个可以在内核上下文中任意执行远程代码的漏洞.在Linux内核4.6版本中,有一个潜在的UAF漏洞存在于mm/percpu.c当中.它允许本地用户通过构造mmap和bpf系统调用导致拒绝服务.补丁中的代码将大多数非原子分配置于pcpu_alloc_mutex下,以与pcpu_balance_work同步,并将异步映射扩展操作转储到pcpu_balance_work,以防止UAF漏洞.A).Critical级提权的漏洞

 

CVE-2016-5195 是内核内存子系统中一个可以在内核上下文中任意执行远程代码的漏洞(脏牛漏洞).由于内存子系统处理私有只读存储器映射的写时复制时存在竞争条件.本地攻击者可以使用它来获得对只读存储器的写入访问,例如可执行文件的内存缓存版本,并且可能在特权进程的上下文中获得任意代码执行.补丁中的代码增加了一个FOLL_COW的标识,然后使用pte的dirty标识来验证FOLL_COW是否有效,以此来防止潜在的任意代码执行.

 

CVE-2015-8966 是内核中一个可以在内核上下文中任意执行远程代码的漏洞.在sys_oabi_fcntl64函数中,KERNEL_DS如果没有被及时设置回USER_DS就会导致任意内存读写的问题.补丁中的代码是在返回之前设置回USER_DS来阻止潜在的问题.

 

CVE-2016-9120 是内核ION驱动中可以在内核上下文中任意执行任意代码的漏洞.在涉及ion_handle结构有个竞争问题导致了UAF漏洞的出现.补丁中的代码增加了适当的锁来阻止潜在的UAF漏洞.

 

B).High级提权的漏洞

CVE-2014-4014 是内核文件系统中的提权漏洞.可以导致本地恶意应用程序绕过与其他应用程序隔离的系统保护.在3.14.8之前的Linux内核中实现的功能中没有正确地考虑命名空间不适用于inode,这允许本地用户通过首先创建用户命名空间来绕过预期的chmod限制,如通过设置带有组的文件的setgid位所示root权限.补丁修复程序在更改inode_capable以检查uid和gid映射,以防止权限绕过.

 

CVE-2015-8967 是内核中一个可以在内核上下文中任意执行远程代码的漏洞.sys_call_table可写导致了潜在的任意代码执行.补丁中的代码标记了放在rodata段的sys_call_table常量,这可以导致尝试修改它失败,在严格的页表权限控制下,防止了潜在的任意代码执行.

 

CVE-2016-6786和CVE-2016-6787是内核performance子系统中的一个可以在内核上下文中任意执行远程代码的漏洞.在涉及perf_event结构中的一个竞争问题,导致了潜在 的UAF漏洞出现.补丁中的代码增加了合适的锁来防止潜在的UAF漏洞出现.

 

CVE-2015-7872 是内核安全子系统中的一个可以在内核上下文中任意执行远程代码的漏洞.在Linux4.2.6版本中security/keys/gc.c文件中的key_gc_unused_keys函数中允许本地用户通过恶意构造keyctl命令来执行代码.补丁中的代码增加了检查来阻止潜在的代码执行问题.

 

CVE-2016-1583 是内核加密文件系统中的一个可以在内核上下文中任意执行远程代码的漏洞.原始修复是通过实现仅打开文件的mmap操作来引入对较低文件系统的依赖.更新的补丁设计具有mmap处理的实例来替换.

 

C).Moderate级漏洞

CVE-2016-8399 是内核网络子系统中的一个可以在内核上下文中任意执行远程代码的漏洞.在ping_common_sendmsg函数中,传递的icmph_len变量的长度没有校验充分导致潜在的数据溢出.补丁中的代码增加了额外的检查来防止溢出.

 

CVE-2016-8401,CVE-2016-8402,CVE-2016-8403,CVE-2016-8404,CVE-2016-8406,CVE-2016-8407都是内核组件中的可以导致恶意应用程序使用权限之外的数据的漏洞.%p可以导致泄漏内核地址,补丁中的代码使用%pK来替换%p,防止泄漏内核地址.

 

CVE-2016-8405 是内核组件中的可以导致恶意应用程序使用权限之外的数据的漏洞.fb_cmap_to_user函数中,没有考虑to->start变量小于0的情况,因此导致了信息泄漏问题的出现.补丁中的代码加强了边界检查来避免这个问题.

 

D). Low级提权的漏洞

CVE-2016-6690 是内核音频驱动中的一个可以导致设备重启的漏洞.原来的固定使用EIO作为错误返回代码但函数签名有unsigned int作为返回类型.补丁中的代码用-1替换掉了原来的-EIO来修正这个问题.

 

  • 驱动漏洞

A).高通驱动漏洞

CVE-2016-8411 是高通MSM接口中一个可以在内核上下文中任意执行远程代码的漏洞.在处理QMI QOS NSTD过滤器或NW支持的QOS配置文件TLV时,没有对过滤器或配置文件缓冲区索引进行边界检查.当我们从调制解调器获得QOS指示,并且配置文件数量大于QMI_QOS_MAX_PROFILES或者如果过滤器规格缓冲区大于QMI_QOS_MAX_FLOW_FILTER,则发生缓冲区溢出.

 

CVE-2016-6755 是高通照相机驱动中一个可以在内核上下文中任意执行远程代码的漏洞.在msm_actuator_parse_i2c_params函数中,有一个不正确的边界检查导致潜在的堆缓冲区溢出.补丁中的代码修复了边界检查来阻止潜在的堆缓冲区溢出问题.

 

CVE-2016-6791,CVE-2016-8391和CVE-2016-8392都是高通音频驱动中的可以在内核上下文中任意执行远程代码的漏洞.在涉及到audio_aio_ion_region结构中存在竞争问题,因此导致了潜在的UAF漏洞.补丁中的代码增加了适当的锁来修复UAF问题的出现.

 

CVE-2016-8410 是高通音频驱动可以导致恶意应用程序使用权限之外的数据的漏洞.%p可以导致泄漏内核地址,补丁中的代码使用%pK来替换%p,防止泄漏内核地址.

 

B).MediaTek驱动漏洞

CVE-2016-6492 是MediaTek驱动中一个可以在内核上下文中任意执行远程代码的漏洞.传递给MT6573FDVT_SetRegHW函数的a_pstCfg变量没有经过校验,导致潜在的内存破坏问题出现.补丁中的代码增加了边界检查来修复这个问题.

 

CVE-2016-6781 是MediaTek驱动中一个可以在内核上下文中任意执行远程代码的漏洞.在rgidle_state_store函数中,由于拷贝的数据没有约束导致了潜在的栈溢出问题.补丁中的代码增加了临界检查来防止这个问题的出现.

 

CVE-2016-6782 是MediaTek驱动中一个可以在内核上下文中任意执行远程代码的漏洞.在mt_gpio_store_pin 函数中,由于拷贝的数据没有约束导致了潜在的栈溢出问题.补丁中的代码增加了临界检查来防止这个问题的出现.

 

CVE-2016-6783 是MediaTek驱动中一个可以在内核上下文中任意执行远程代码的漏洞.在__enable_ssc函数中,传递的变量pll_id没有经过校验,从而导致了潜在的内存破坏问题的出现.补丁中的代码增加了临界检查来阻止潜在的问题.

 

CVE-2016-6784 是MediaTek驱动中一个可以在内核上下文中任意执行远程代码的漏洞.在__disable_ssc函数中,传递的变量pll_id没有经过校验,从而导致了潜在的内存破坏问题的出现.补丁中的代码增加了临界检查来阻止内存漏洞.

 

CVE-2016-6785 是MediaTek驱动中一个可以在内核上下文中任意执行远程代码的漏洞.在TMP103_HW_Write_Proc函数中,由于拷贝的数据没有约束导致了栈溢出问题的出现.补丁中的代码增加了边界检查来防止这个问题.

 

CVE-2016-6788 是MediaTek I2C驱动中的一个可以在内核上下文中任意执行远程代码的漏洞.在set_config函数中,由于拷贝的数据没有约束导致了潜在的溢出问题.补丁中的代码限制了拷贝的大小来阻止潜在的溢出问题.

 

CVE-2016-8396 是MediaTek视频驱动中的一个可以导致恶意应用程序使用权限之外的数据的漏洞.VAL_VCODEC_CPU_LOADING_INFO_T结构没有初始化就拷贝给用户导致了潜在的信息泄漏问题.补丁中的代码在初始化的时候将该结构清零来阻止潜在的信息泄漏问题.

 

C). NVIDIA 驱动漏洞

CVE-2016-6775 是英伟达GPU驱动中可以在内核上下文中任意执行任意代码的漏洞.在涉及到nvmap_handle_info的结构中存在一个竞争条件的问题会导致UAF漏洞的出现.补丁中的代码使用nvmap_get_dmabuf_fd函数替换了nvmap_create_fd函数来阻止潜在的UAF风险.

 

CVE-2016-6776 是英伟达GPU驱动中可以在内核上下文中任意执行任意代码的漏洞.在涉及到vm_gk20a的结构中存在一个竞争条件的问题会导致UAF漏洞的出现.补丁中的代码是确保VM对象的至少有一个通道的使用,防止UAF的漏洞出现.

 

CVE-2016-6777 是英伟达GPU驱动中可以在内核上下文中任意执行任意代码的漏洞.存在一个和ch->error_notifier变量存在条件竞争的问题导致了UAF漏洞的出现.补丁中的代码增加了适当的锁来防止潜在的问题.

 

CVE-2016-6915 和 CVE-2016-6916 是英伟达视频驱动中可以在内核上下文中任意执行任意代码的漏洞.num_syncpt_incrs变量在传递给nvhost_ioctl_channel_submit函数中就使用导致了栈溢出问题.补丁中的代码增加了对输入参数的校验来防止这个问题的出现.

 

CVE-2016-6917 是英伟达视频驱动中可以在内核上下文中任意执行任意代码的漏洞.在32位体系的机器上,在job_size函数中,由于num_unpins变量的设置存在整形溢出问题.补丁中把变量类型全部设置成u64来防止这个问题.

 

CVE-2016-8397 是英伟达视频驱动中的一个可以导致恶意应用程序使用权限之外的数据的漏洞.在nvmap_ioctl_get_param函数中,由于没有检验参数而导致了潜在的信息泄漏问题.补丁中的代码检查了nvmap_get_handle_param的返回值来判断是否信息泄漏.

 

CVE-2016-8395 是英伟达照相机驱动中拒绝服务漏洞.regmap_read函数在写入数据的时候是一个整形指针的变量,没有检查直接使用导致了潜在的溢出问题.补丁中的代码在读入数据前增加了校验防止拷贝越界.

 

CVE-2016-8408 和CVE-2016-8409都是英伟达视频驱动中的可以导致恶意应用程序使用权限之外的数据的漏洞.%p可以导致泄漏内核地址,补丁中的代码使用%pK来替换%p,防止泄漏内核地址.

 

D). 其他驱动漏洞

CVE-2016-6778 和CVE-2016-6779 是HTC音频codec驱动中的一个可以在内核上下文中任意执行远程代码的漏洞.由于没有验证cmd变量是否小于sizeof(struct tfa9895_i2c_buffer)导致了潜在的堆溢出问题.补丁中的代码增加了边界检查来阻止潜在的堆溢出问题.

 

CVE-2016-6780 是HTC音频codec驱动中的一个可以在内核上下文中任意执行远程代码的漏洞.在rt5506_ioctl函数中,有一个涉及rt5506_cfg_data.cmd_data变量的竞争条件问题导致了潜在的UAF漏洞.补丁中的代码增加了适当的锁来避免UAF问题的出现.

 

CVE-2016-8393 是Synaptics触摸屏驱动中的一个可以在内核上下文中任意执行远程代码的漏洞.在fwu_get_image_firmware_id函数中,由于没有限制索引导致了潜在的堆缓冲区溢出问题.补丁中的代码增加了边界检查来阻止潜在的堆缓冲区溢出问题.

 

CVE-2016-8394 是Synaptics触摸屏驱动中的一个可以在内核上下文中任意执行远程代码的漏洞.在fwu_sysfs_image_name_store函数中,由于拷贝没有约束而导致了潜在的堆缓冲区溢出问题.补丁中的代码增加了边界检查来阻止潜在的堆缓冲区溢出问题.

 

CVE-2014-9909 是博通wifi驱动中的一个可以在内核上下文中任意执行远程代码的漏洞.在wl_android_priv_cmd函数中,由于priv_cmd.total_len变量没有考虑到负数的情况而导致了潜在的堆溢出漏洞.补丁中的代码增加了额外的检查来修复潜在的堆溢出漏洞.

 

CVE-2014-9910 是博通wifi驱动中的一个可以在内核上下文中任意执行远程代码的漏洞.在wls_parse_batching_cmd函数中,由于拷贝的数据没有约束导致了潜在的溢出问题.补丁中的代码限制了拷贝的大小来阻止潜在问题的出现.

 

  • 高通组件漏洞

CVE-2016-5341 是高通GPS组件中一个能被远程攻击者导致系统崩溃或者重启的漏洞.部分文件通过HTTP传输,由于该通信协议缺乏安全性,恶意攻击者可能能够使用中间人攻击提供任意数据.此修复程序旨在将XTRA客户端版本修改为包括签名,将端点更改为使用HTTPS或同时使用两者的版本.

 

CVE-2016-6756 是高通组件中的一个可以导致恶意应用程序使用权限之外的数据的漏洞.在msm_cpp_subdev_ioctl函数中,如果_IOC_DIR(cmd)是_IOC_NONE就会导致信息泄漏问题的出现,补丁中的代码增加了边界检查来阻止潜在的信息泄漏问题.

 

CVE-2016-6757 是高通组件中的一个可以导致恶意应用程序使用权限之外的数据的漏洞.%p可以导致泄漏内核地址,补丁中的代码使用%pK来替换%p,防止泄漏内核地址.

  • 受影响进程列表