IT资讯/综合软件下载站!┆ 最新软件 最新文章 最新手机 UFO外星人 网站分类

您当前的位置→图文中心新闻资讯安全播报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 ];

……

}

下一页最新PHP168 6.0及以下版本漏洞

相关文章
  • ·[图文]安卓Android 7.0的APP安装速度为什么那么快
  • ·[图文]OPPO F3发布时间详细介绍
  • ·[图文]QQ恢复好友对方知道吗手机App一键批量恢复好友
  • ·[图文]ios11怎么下载32位app ios11如何支持32app
  • ·[图文]58同城app新消息声音提醒如何关闭
  • ·[图文]ppt2013如何做smartart文字逐个出现的动画效果
  • ·[图文]苹果App Store审核不能变更了吗
  • ·[图文]研究结果指出: Trappist-1星系比地球更具有生命的可能性!
  • 发表评论
    栏目列表
    阅读排行
    网站帮助 - 广告合作 - 下载声明 - 网站地图