安全研究

安全漏洞
Microsoft Windows CSRSS CSRFinalizeContext本地权限提升漏洞(MS07-021)

发布日期:2007-04-10
更新日期:2007-04-11

受影响系统:
Microsoft Windows Vista
描述:
BUGTRAQ  ID: 23338
CVE(CAN) ID: CVE-2007-1209

Microsoft Windows是微软发布的非常流行的操作系统。

Windows的CSRSS服务实现上存在设计漏洞,本地攻击者可能利用此漏洞提升自己的权限。

从Windows Vista开始使用了一种扩展形式的本地过程调用(LPC),被称为高级本地过程调用(ALPC),用于取代旧的LPC与CSRSS进行通讯。每个新的进程都会创建到其会话CSRSS的ApiPort(\Windows\ApiPort或\Sessions\<sessionid>\Windows\ApiPort)的ALPC连接。

CSRSS在其服务的会话中维护一个关于进程结构的内部双向链表。引入ALPC后,CSRSS就可以通过使用连接上下文属性中的指针字段将ALPC连接关联到所调用进程相关的进程结构上。但是,CSRSS中很多地方错误的假设进程只会生成一个ApiPort连接,如CSRSRV.DLL!CsrApiRequestThread。每个进程结构中都包含有一个引用计数器,如果创建了新的ALPC连接计数器不会递增,但如果关闭了连接的话可能会递减。因此,攻击者可以创建多个ApiPort连接,然后通过关闭最初的连接释放客户端的进程结构,最后关闭第二个连接或对其执行其他行为,导致错误的重新使用已不存在的进程结构指针。

这个漏洞允许攻击者对以释放或已重新分配用于其他用途的内存执行操作。攻击者可以通过关闭第一个连接释放进程结构(在Vista中NTDLL.DLL!CsrPortHandle不受保护),用任意数据替换进程结构之前所占用的堆内存,然后通过关闭第二个连接导致如进程结构那样引用并释放所替换进去的数据。一旦完成了这些操作,CSRSS的执行就会被牵引到攻击者所提供的函数指针上。

<*来源:Derek Soeder (dsoeder@eeye.com
  
  链接:http://secunia.com/advisories/24823/
        http://research.eeye.com/html/advisories/published/AD20070410b.html
        http://www.microsoft.com/technet/security/Bulletin/MS07-021.mspx?pf=true
        http://www.us-cert.gov/cas/techalerts/TA07-100A.html
*>

建议:
厂商补丁:

Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS07-021)以及相应补丁:
MS07-021:Vulnerabilities in CSRSS Could Allow Remote Code Execution (930178)
链接:http://www.microsoft.com/technet/security/Bulletin/MS07-021.mspx?pf=true

补丁下载:
http://www.microsoft.com/downloads/details.aspx?FamilyId=3487b1f0-a383-41a4-a660-2768962b3bcd
http://www.microsoft.com/downloads/details.aspx?FamilyId=c46f62e1-dddd-4886-a82b-ebec258a495b

浏览次数:3103
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障