CVE-2007-4916 (CNNVD-200709-214)

CRITICAL 有利用代码
中文标题:
Microsoft MFC库CFileFind::FindFile堆溢出漏洞
英文标题:
Heap-based buffer overflow in the FileFind::FindFile method in (1) MFC42.dll, (2) MFC42u.dll, (3) MF...
CVSS分数: 10.0
发布时间: 2007-09-17 17:00:00
漏洞类型: 授权问题
状态: PUBLISHED
数据质量分数: 0.40
数据版本: v5
漏洞描述
中文描述:

Microsoft Windows是美国微软(Microsoft)公司发布的一系列操作系统。 Windows系统中所提供的MFC42和MFC71库的CFileFind类在处理FindFile()函数参数时存在堆溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。 MFC[42|71].dll@CFileFind::FindFile(char const *,unsigned long) .text:73D6CD3F mov edi, edi .text:73D6CD41 push ebp .text:73D6CD42 push esi ; unsigned int .text:73D6CD43 push edi ; unsigned __int8 * .text:73D6CD44 mov esi, ecx .text:73D6CD46 call CFileFind::Close(void) .text:73D6CD4B push 140h ; int << 320 bytes .text:73D6CD50 call @operator new(uint) << buffer Allocate [1] .text:73D6CD55 mov ebp, [esp+14h] .text:73D6CD59 and dword ptr [esi+10h], 0 .text:73D6CD5D test ebp, ebp .text:73D6CD5F pop ecx .text:73D6CD60 mov [esi+8], eax .text:73D6CD63 jnz short loc_73D6CD6A .text:73D6CD65 mov ebp, offset a__1 ; "*.*" << si arg_0 == NULL .text:73D6CD6A loc_73D6CD6A; CODE XREF: CFileFind::FindFile(char const*,ulong)+24j .text:73D6CD6A push ebp ; lpString2 .text:73D6CD6B add eax, 2Ch .text:73D6CD6E push eax ; lpString1 .text:73D6CD6F call ds:__imp__lstrcpyA@8 ; lstrcpyA(x,x) << [2] .text:73D6CD75 push dword ptr [esi+8] ; lpFindFileData .text:73D6CD78 push ebp ; lpFileName .text:73D6CD79 call ds:__imp__FindFirstFileA@8 ; FindFirstFileA(x,x) [...] MFC[42|71]u.dll@CFileFind::FindFile(char const *,unsigned long) .text:5F817BFC push ebx ; wchar_t .text:5F817BFD push esi ; wchar_t * .text:5F817BFE push edi .text:5F817BFF mov esi, ecx .text:5F817C01 call CFileFind::Close(void) .text:5F817C06 push 250h ; int << 592 bytes .text:5F817C0B call @operator new(uint) << buffer allocate [1] .text:5F817C10 mov ebx, [esp+14h] .text:5F817C14 and dword ptr [esi+10h], 0 .text:5F817C18 test ebx, ebx .text:5F817C1A pop ecx .text:5F817C1B mov [esi+8], eax .text:5F817C1E jnz short loc_5F817C25 .text:5F817C20 mov ebx, offset a_ ; "*.*" << si arg_0 == NULL .text:5F817C25 loc_5F817C25; CODE XREF: CFileFind::FindFile(ushort const*,ulong)+22j .text:5F817C25 push ebx ; lpString2 .text:5F817C26 add eax, 2Ch .text:5F817C29 push eax ; lpString1 .text:5F817C2A call ds:__imp__lstrcpyW@8 ; lstrcpyW(x,x) << [2] .text:5F817C30 push dword ptr [esi+8] ; lpFindFileData .text:5F817C33 push ebx ; lpFileName .text:5F817C34 call ds:__imp__FindFirstFileW@8 ; FindFirstFileW(x,x) [...] FindFile方式为[1]处的缓冲区分配内存,然后未经检查便储存了[2]处函数的第一个参数的内容。如果用户提交了超长参数的话就可以触发堆溢出,导致执行任意指令。

英文描述:

Heap-based buffer overflow in the FileFind::FindFile method in (1) MFC42.dll, (2) MFC42u.dll, (3) MFC71.dll, and (4) MFC71u.dll in Microsoft Foundation Class (MFC) Library 8.0, as used by the ListFiles method in hpqutil.dll 2.0.0.138 in Hewlett-Packard (HP) All-in-One and Photo & Imaging Gallery 1.1 and probably other products, allows context-dependent attackers to cause a denial of service (crash) or possibly execute arbitrary code via a long first argument.

CWE类型:
CWE-119
标签:
dos windows Jonathan Sarba OSVDB-37105 GOODFELLAS
受影响产品
厂商 产品 版本 版本范围 平台 CPE
hp photo_and_imaging_gallery 1.1 - - cpe:2.3:a:hp:photo_and_imaging_gallery:1.1:*:*:*:*:*:*:*
hp all-in-on_printer * - - cpe:2.3:h:hp:all-in-on_printer:*:*:*:*:*:*:*:*
解决方案
中文解决方案:
(暂无数据)
英文解决方案:
(暂无数据)
临时解决方案:
(暂无数据)
参考链接
25697 vdb-entry
cve.org
访问
20070914 [GOODFELLAS-VULN] ActiveX hpqutil!ListFiles hpqutil.dll - Remoteheap overflow mailing-list
cve.org
访问
20070914 [GOODFELLAS-VULN] FileFind class from MFC Library cause heapoverflow mailing-list
cve.org
访问
1018698 vdb-entry
cve.org
访问
visual-mfc-findfile-bo(36608) vdb-entry
cve.org
访问
25673 vdb-entry
cve.org
访问
VU#611008 third-party-advisory
cve.org
访问
无标题 x_refsource_MISC
cve.org
访问
无标题 x_refsource_MISC
cve.org
访问
3143 third-party-advisory
cve.org
访问
26800 third-party-advisory
cve.org
访问
ADV-2007-3182 vdb-entry
cve.org
访问
hp-hpqutillistfiles-bo(36609) vdb-entry
cve.org
访问
ExploitDB EDB-30593 EXPLOIT
exploitdb
访问
Download Exploit EDB-30593 EXPLOIT
exploitdb
访问
CVE Reference: CVE-2007-4916 ADVISORY
cve.org
访问
ExploitDB EDB-4409 EXPLOIT
exploitdb
访问
Download Exploit EDB-4409 EXPLOIT
exploitdb
访问
CVSS评分详情
10.0
CRITICAL
CVSS向量: AV:N/AC:L/Au:N/C:C/I:C/A:C
CVSS版本: 2.0
机密性
COMPLETE
完整性
COMPLETE
可用性
COMPLETE
时间信息
发布时间:
2007-09-17 17:00:00
修改时间:
2024-08-07 15:08:33
创建时间:
2025-11-11 15:32:46
更新时间:
2026-01-26 02:17:55
利用信息
此漏洞有可利用代码!
利用代码数量: 2
利用来源:
未知 未知
数据源详情
数据源 记录ID 版本 提取时间
CVE cve_CVE-2007-4916 2025-11-11 15:17:55 2025-11-11 07:32:46
NVD nvd_CVE-2007-4916 2025-11-11 14:52:12 2025-11-11 07:41:33
CNNVD cnnvd_CNNVD-200709-214 2025-11-11 15:08:58 2025-11-11 07:49:20
EXPLOITDB exploitdb_EDB-30593 2025-11-11 15:05:50 2025-11-11 08:25:35
EXPLOITDB exploitdb_EDB-4409 2025-11-11 15:05:49 2025-11-11 08:46:40
版本与语言
当前版本: v5
主要语言: EN
支持语言:
EN ZH
其他标识符:
:
:
:
:
安全公告
暂无安全公告信息
变更历史
v5 EXPLOITDB
2025-11-11 16:46:40
references_count: 16 → 18; tags_count: 4 → 5
查看详细变更
  • references_count: 16 -> 18
  • tags_count: 4 -> 5
v4 EXPLOITDB
2025-11-11 16:25:35
references_count: 13 → 16; tags_count: 0 → 4; data_sources: ['cnnvd', 'cve', 'nvd'] → ['cnnvd', 'cve', 'exploitdb', 'nvd']
查看详细变更
  • references_count: 13 -> 16
  • tags_count: 0 -> 4
  • data_sources: ['cnnvd', 'cve', 'nvd'] -> ['cnnvd', 'cve', 'exploitdb', 'nvd']
v3 CNNVD
2025-11-11 15:49:20
vulnerability_type: 未提取 → 授权问题; cnnvd_id: 未提取 → CNNVD-200709-214; data_sources: ['cve', 'nvd'] → ['cnnvd', 'cve', 'nvd']
查看详细变更
  • vulnerability_type: 未提取 -> 授权问题
  • cnnvd_id: 未提取 -> CNNVD-200709-214
  • data_sources: ['cve', 'nvd'] -> ['cnnvd', 'cve', 'nvd']
v2 NVD
2025-11-11 15:41:33
severity: SeverityLevel.MEDIUM → SeverityLevel.CRITICAL; cvss_score: 未提取 → 10.0; cvss_vector: NOT_EXTRACTED → AV:N/AC:L/Au:N/C:C/I:C/A:C; cvss_version: NOT_EXTRACTED → 2.0; affected_products_count: 0 → 2; data_sources: ['cve'] → ['cve', 'nvd']
查看详细变更
  • severity: SeverityLevel.MEDIUM -> SeverityLevel.CRITICAL
  • cvss_score: 未提取 -> 10.0
  • cvss_vector: NOT_EXTRACTED -> AV:N/AC:L/Au:N/C:C/I:C/A:C
  • cvss_version: NOT_EXTRACTED -> 2.0
  • affected_products_count: 0 -> 2
  • data_sources: ['cve'] -> ['cve', 'nvd']