Microsoft MUP超长请求本地内核缓冲区溢出漏洞(MS02-017) CVE-2002-0151 CNNVD-200204-011

7.2 AV AC AU C I A
发布: 2002-04-04
修订: 2019-04-30

当Microsoft Windows NT/2000/XP系统中的应用程序使用UNC格式(例如:\\ip\sharename)来访问其他主机上的文件时,操作系统会将此请求交给Multiple UNC Provider(MUP)进行处理。MUP会将请求发给多个转发程序(redirector),并根据其响应找到合适的转发程序。MUP运行在核心态,由mup.sys实现其功能。 当收到一个UNC文件请求时,MUP会先将其保存在内核中的一个缓冲区中,缓冲区的大小为UNC请求长度加上0x1000字节。在将请求发送给转发程序时,它会再将这个请求拷贝到缓冲区中,附加在原来的那个请求的后面。然而,如果文件请求的长度超过0x1000字节,就可能覆盖缓冲区之外的内存数据。这些动态分配的内存之间通常包含一些管理结构的数据,通过重写这些数据,当内核重新分配或者释放内存时,就有可能改变任意内核内存的内容。例如,攻击者可以通过修改idt门来给调用者更高的权限。 成功地利用这个漏洞,本地攻击者能够修改内核内存中的内容,因此可以获取Local SYSTEM或者其他任意权限。根据我们的测试,在Windows 2000下可以成功地利用这个漏洞,但并不总是能成功,因为要利用这个漏洞还依赖于内核什么时候会去处理被溢出的内存。如果使用随机数据,系统可能会蓝屏并重新启动。Windows NT 存在同样的溢出问题,但是似乎更难被利用。

0%
暂无可用Exp或PoC
当前有6条受影响产品信息