ARP联盟图文中心下载中心手机频道最近更新软件最近更新文章网络热点
您当前的位置→图文中心新闻资讯安全播报PPstream最新0DAY播报
站内搜索:

PPstream最新0DAY播报


2009/9/23  编辑:佚名 来源:本站整理 

该问题([1], [2])其实产生于MFC 4.2当中,由于CFileFind::FindFile没有对传入的pstrName参数进行长度校验,而直接调用lstrcpyA将其拷贝入一固定大小的堆中,导致了堆溢出。网上查了下,这个问题已经在07年的时候被披露(CVE-2007-4916),不过没有找到微软的相关补丁。以下是MFC 4.2(vc++ 6.0)中的相关代码:

BOOL CFileFind::FindFile(LPCTSTR pstrName /* = NULL */,
DWORD dwUnused /* = 0 */)
{
UNUSED_ALWAYS(dwUnused);
Close();
m_pNextInfo = new WIN32_FIND_DATA;
m_bGotLast = FALSE;

if (pstrName == NULL)
   pstrName = _T("*.*");
lstrcpy(((WIN32_FIND_DATA*) m_pNextInfo)->cFileName, pstrName);

m_hContext = ::FindFirstFile(pstrName, (WIN32_FIND_DATA*) m_pNextInfo);

……

}

typedef struct _WIN32_FIND_DATAA {
    DWORD dwFileAttributes;
    FILETIME ftCreationTime;
    FILETIME ftLastAccessTime;
    FILETIME ftLastWriteTime;
    DWORD nFileSizeHigh;
    DWORD nFileSizeLow;
    DWORD dwReserved0;
    DWORD dwReserved1;
    CHAR   cFileName[ MAX_PATH ];
    CHAR   cAlternateFileName[ 14 ];

……

参考消息:http://www.arpun.com/}

更多精彩,请查看本类栏目: 新闻资讯 - 安全播报
除非注明,ARP联盟文章来于网络,投稿原创等,转载请以链接形式标明本文地址。
本文地址:http://www.arpun.com/article/4474.html

相关文章
  • ·oppo r9有粉色吗 oppo r9几种颜色
  • ·[图文]iPhone SE支持Apple Pay吗?
  • ·[图文]苹果app中毒怎么处理
  • ·[图文]OPPO R9开箱图赏与简单体验评测
  • ·[图文]apple id被锁定怎么办
  • ·[图文]iPhone如何查看已登录的apple id?
  • ·[图文]PP红包闪退怎么办
  • ·[图文]Apple Pay防盗指南
  • 发表评论
    栏目列表
    阅读排行
    本类最新
    网站帮助 - 广告合作 - 下载声明 - 网站地图