BUGTRAQ ID: 39630 Microsoft Windows是微软发布的非常流行的操作系统。 Windows操作系统所使用的Win32k.sys驱动在DispatchMessage时,会最后调用到xxxDefWindowProc。该函数在处理某些消息时会调用gapfnScSendMessage函数表中的函数来处理,其中2000/xp/2003下在处理0x4c号消息时,会有一个名为 SfnLOGONNOTIFY的函数。当wParam == 4/13/12时该函数直接从lParam里取出数据。尽管函数内使用了SEH,但是只要传递错误的内核地址,仍然会引发系统崩溃。 伪代码: if ( wParam == 4 || wParam == 13 || wParam == 12 ) { v18 = *(_DWORD *)lParam; v19 = *(_DWORD *)(lParam + 4); v20 = *(_DWORD *)(lParam + 8); v21 = *(_DWORD *)(lParam + 12); Microsoft Windows XP SP3 Microsoft Windows Server 2003 SP2 Microsoft Windows 2000 SP4 厂商补丁: Microsoft --------- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://www.microsoft.com/technet/security/
BUGTRAQ ID: 39630 Microsoft Windows是微软发布的非常流行的操作系统。 Windows操作系统所使用的Win32k.sys驱动在DispatchMessage时,会最后调用到xxxDefWindowProc。该函数在处理某些消息时会调用gapfnScSendMessage函数表中的函数来处理,其中2000/xp/2003下在处理0x4c号消息时,会有一个名为 SfnLOGONNOTIFY的函数。当wParam == 4/13/12时该函数直接从lParam里取出数据。尽管函数内使用了SEH,但是只要传递错误的内核地址,仍然会引发系统崩溃。 伪代码: if ( wParam == 4 || wParam == 13 || wParam == 12 ) { v18 = *(_DWORD *)lParam; v19 = *(_DWORD *)(lParam + 4); v20 = *(_DWORD *)(lParam + 8); v21 = *(_DWORD *)(lParam + 12); Microsoft Windows XP SP3 Microsoft Windows Server 2003 SP2 Microsoft Windows 2000 SP4 厂商补丁: Microsoft --------- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://www.microsoft.com/technet/security/