CVE-2005-2827 (CNNVD-200512-225)

HIGH 有利用代码
中文标题:
Microsoft Windows异步过程调用本地权限提升漏洞
英文标题:
The thread termination routine in the kernel for Windows NT 4.0 and 2000 (NTOSKRNL.EXE) allows local...
CVSS分数: 7.2
发布时间: 2005-12-14 01:00:00
漏洞类型: 授权问题
状态: PUBLISHED
数据质量分数: 0.30
数据版本: v4
漏洞描述
中文描述:

Microsoft Windows是美国微软(Microsoft)公司发布的一系列操作系统。 Microsoft Windows处理异步过程调用(APC)队列列表的方式存在漏洞,本地攻击者可以利用此漏洞提供任意函数指针,劫持执行流,最终完全控制系统。线程在退出的时候,PspExitThread会从ETHREAD.ApcState.ApcListHead[0]和ApcListHead[1]分离线程的APC队列,这样每个队列都会是一个循环的、双向链接的列表,其第一个和最后一个节点不指回到表头(LIST_ENTRY结构)。但是,由于没有修改表头的指针,因此其目的可能仅仅是允许PspExitThread中的APC释放循环,以便无需回到表头并错误的尝试释放ETHREAD结构中内存便可走过每个列表并释放其节点。攻击者可以利用这一过程释放数据,最终导致ExFreePoolWithTag操作用户内存。 外部进程所排列的APC会计算该进程的pool限额,因此包含有APC结构pool块的限额块会引用队列进程。如果正在退出线程的列表中包含有当前终止外部进程所排列的APC,且该APC节点代表进程的Process对象的最后引用,则释放该节点会导致在ExFreePoolWithTag中破坏Process对象,所造成的后果包括执行PspProcessDelete。这会使用KeStackAttachProcess切换到结束进程的地址空间,调用PspExitProcess。然后使用KeUnstackDetachProcess反转切换。 "attach"和"detach"函数都调用KiMoveApcState,其目的是临时分离其APC的线程,这样就不会分发到非预期的地址空间中,然后在线程的原始地址空间恢复后重新链接APC列表。在附加过程中,复制了ETHREAD.ApcState结构,并调整了列表的第一个和最后一个节点的指针以便引用拷贝。在分离的时候,尽管假设第一个和最后一个节点的指针仍是断开的(因为APC释放循环仍在进行),但调整了这些节点指针以重新将列表链接到原始的ETHREAD.ApcState。最终结果是释放循环仍会继续,尝试释放部分ETHREAD结构。由于所访问的ETHREAD部分中包含有可预测的且大部分为清零的值,因此最终会导致对攻击者提供指针的kernel操作。 以下过程说明了函数调用顺序和漏洞产生过程中所涉及到的参数: . PspExitThread . . KeFlushQueueApc . . (detaches APC queues from ETHREAD.ApcState.ApcListHead) . . (APC free loop begins) . . ExFreePool(1st_APC -- queued by exited_process) . . . ExFreePoolWithTag(1st_APC) . . . . ObfDereferenceObject(exited_process) . . . . . ObpRemoveObjectRoutine . . . . . . PspProcessDelete . . . . . . . KeStackAttachProcess(exited_process) . . . . . . . . KiAttachProcess . . . . . . . . . KiMoveApcState(ETHREAD.ApcState --> duplicate) . . . . . . . . . KiSwapProcess . . . . . . . PspExitProcess(0) . . . . . . . KeUnstackDetachProcess . . . . . . . . KiMoveApcState(duplicate --> ETHREAD.ApcState) . . . . . . . . KiSwapProcess . . ExFreePool(2nd_APC) . . ExFreePool(ETHREAD + 30h) . . (APC free loop ends)

英文描述:

The thread termination routine in the kernel for Windows NT 4.0 and 2000 (NTOSKRNL.EXE) allows local users to modify kernel memory and execution flow via steps in which a terminating thread causes Asynchronous Procedure Call (APC) entries to free the wrong data, aka the "Windows Kernel Vulnerability."

CWE类型:
(暂无数据)
标签:
local windows SoBeIt OSVDB-18823 MS05-055
受影响产品
厂商 产品 版本 版本范围 平台 CPE
microsoft windows_2000 * - - cpe:2.3:o:microsoft:windows_2000:*:*:*:*:*:*:*:*
microsoft windows_nt 4.0 - - cpe:2.3:o:microsoft:windows_nt:4.0:*:*:*:*:*:*:*
解决方案
中文解决方案:
(暂无数据)
英文解决方案:
(暂无数据)
临时解决方案:
(暂无数据)
参考链接
18064 third-party-advisory
cve.org
访问
ADV-2005-2868 vdb-entry
cve.org
访问
15826 vdb-entry
cve.org
访问
MS05-055 vendor-advisory
cve.org
访问
无标题 x_refsource_CONFIRM
cve.org
访问
ADV-2005-2909 vdb-entry
cve.org
访问
win-apc-gain-privileges(23447) vdb-entry
cve.org
访问
18311 third-party-advisory
cve.org
访问
oval:org.mitre.oval:def:1583 vdb-entry
cve.org
访问
EEYEB-20051213 third-party-advisory
cve.org
访问
252 third-party-advisory
cve.org
访问
20051213 [EEYEB-20050523] Windows Kernel APC Data-Free Local Privilege Escalation Vulnerability mailing-list
cve.org
访问
1015347 vdb-entry
cve.org
访问
18823 vdb-entry
cve.org
访问
无标题 x_refsource_MISC
cve.org
访问
15821 third-party-advisory
cve.org
访问
ExploitDB EDB-1407 EXPLOIT
exploitdb
访问
Download Exploit EDB-1407 EXPLOIT
exploitdb
访问
CVE Reference: CVE-2005-2827 ADVISORY
cve.org
访问
CVSS评分详情
7.2
HIGH
CVSS向量: AV:L/AC:L/Au:N/C:C/I:C/A:C
CVSS版本: 2.0
机密性
COMPLETE
完整性
COMPLETE
可用性
COMPLETE
时间信息
发布时间:
2005-12-14 01:00:00
修改时间:
2024-08-07 22:45:02
创建时间:
2025-11-11 15:32:28
更新时间:
2025-11-11 16:07:18
利用信息
此漏洞有可利用代码!
利用代码数量: 1
利用来源:
未知
数据源详情
数据源 记录ID 版本 提取时间
CVE cve_CVE-2005-2827 2025-11-11 15:17:35 2025-11-11 07:32:28
NVD nvd_CVE-2005-2827 2025-11-11 14:51:21 2025-11-11 07:41:14
CNNVD cnnvd_CNNVD-200512-225 2025-11-11 15:08:49 2025-11-11 07:49:02
EXPLOITDB exploitdb_EDB-1407 2025-11-11 15:05:53 2025-11-11 08:07:18
版本与语言
当前版本: v4
主要语言: EN
支持语言:
EN ZH
其他标识符:
:
:
安全公告
暂无安全公告信息
变更历史
v4 EXPLOITDB
2025-11-11 16:07:18
references_count: 16 → 19; tags_count: 0 → 5; data_sources: ['cnnvd', 'cve', 'nvd'] → ['cnnvd', 'cve', 'exploitdb', 'nvd']
查看详细变更
  • references_count: 16 -> 19
  • tags_count: 0 -> 5
  • data_sources: ['cnnvd', 'cve', 'nvd'] -> ['cnnvd', 'cve', 'exploitdb', 'nvd']
v3 CNNVD
2025-11-11 15:49:02
vulnerability_type: 未提取 → 授权问题; cnnvd_id: 未提取 → CNNVD-200512-225; data_sources: ['cve', 'nvd'] → ['cnnvd', 'cve', 'nvd']
查看详细变更
  • vulnerability_type: 未提取 -> 授权问题
  • cnnvd_id: 未提取 -> CNNVD-200512-225
  • data_sources: ['cve', 'nvd'] -> ['cnnvd', 'cve', 'nvd']
v2 NVD
2025-11-11 15:41:14
severity: SeverityLevel.MEDIUM → SeverityLevel.HIGH; cvss_score: 未提取 → 7.2; cvss_vector: NOT_EXTRACTED → AV:L/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.HIGH
  • cvss_score: 未提取 -> 7.2
  • cvss_vector: NOT_EXTRACTED -> AV:L/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']