CVE:CVE-2006-6385
CNNVD:CNNVD-200612-151
Intel Pro 100/1000是英特尔推出的系列网卡设备。
所有的Intel网卡驱动(NDIS miniport驱动)中都存在一个栈溢出漏洞，本地攻击者可能利用此漏洞提升自己在系统中的权限。
尽管NDIS miniport驱动占用的是低层，非特权用户态代码仍可以通过需要由NDIS实现的网卡统计请求与该驱动通讯。如果攻击者能够向\Device\{adapterguid}发送IOCTL_NDIS_QUERY_SELECTED_STATS (0x17000E)请求的话，就会导致NDIS.SYS调用 miniport驱动在调用NdisMRegisterMiniport时所注册的QueryInformationHandler例程。这个IOCTL所提供的输入缓冲区是一个有关统计的32位OID列表，每个都独立的传送给了QueryInformationHandler，其中包含有检索统计并将其返回给输出缓冲区所需的代码。
在Intel miniport驱动中，某些OID处理器会处理输出缓冲区的内容。在Windows 2000下，指向用户提供缓冲区的指针直接传送给了miniport驱动，这意味着数据是用户可控的。在Windows XP及之后版本下，指针传送给了内核内存中包含有未定义数据的临时缓冲区，因此必须在攻击前控制pool内存才能控制上述数据。
OID 0xFF0203FC的处理器使用以下strcpy操作将输出缓冲区的字符串拷贝到栈变量：
strcpy(&(var_1D4.sz_62), (char*)InformationBuffer + 4)
因此，攻击者可以通过提供0x17A个字符的字符串导致处理器完全覆盖函数的返回地址，将执行流重新定向到任意用户态或内核态地址。攻击字符串必须位于输出缓冲区的+0x0C偏移处，因为NDIS本身会使用前8个字节。
solution:Upgrade intel pro_10_100_adapters to a higher version than 3.5.14,4.0.3,8.0.27.0,and avoid the version (,3.5.14],(,4.0.3],(,8.0.27.0]; Upgrade intel pro_1000_adapters to a higher version than 7.2.7,8.7.1.0,9.0.15,and avoid the version (,7.2.7],(,8.7.1.0],(,9.0.15]; Upgrade intel pro_1000_pcie_adapters to a higher version than 9.1.30.0,and avoid the version (,9.1.30.0]; Upgrade intel pro_10gbe_adapters to a higher version than 1.0.109,and avoid the version (,1.0.109]