科普:Chrome致Win10蓝屏,我应该怎么办?

2021-08-23 anhkgg 9999

今天看到有人说chrome访问一个设备路径导致win10蓝屏,一搜帖子还挺多的。

作为win内核研究人员,对此非常感兴趣。赶紧打开虚拟机,装上chrome,测试一把。

果然蓝了。

分析

挂上Windbg调试器,很容易就发现问题在哪里了。

eax=9d35e390 ebx=00000012 ecx=00000000 edx=9d35e390 esi=b7cb5798 edi=9d35e390 eip=b8fd693a esp=abc7f78c ebp=abc7f790 iopl=0 nv up ei ng nz na po nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010282 condrv!CdpDispatchCleanup+0x1a: b8fd693a 8b11 mov edx,dword ptr [ecx] ds:0023:00000000=???????? Resetting default scope LAST_CONTROL_TRANSFER: from 82a4f2a6 to 829959e4 STACK_TEXT: abc7ec84 82a4f2a6 00000003 417ab436 0000001e nt!RtlpBreakWithStatusInstruction abc7ecd8 82a4ecb4 896dc340 abc7f0c0 abc7f0f4 nt!KiBugCheckDebugBreak+0x1f abc7f094 8299439a 0000001e c0000005 b8fd693a nt!KeBugCheck2+0x7ad abc7f0b8 829942d1 0000001e c0000005 b8fd693a nt!KiBugCheck2+0xc6 abc7f0d8 82a50f6b 0000001e c0000005 b8fd693a nt!KeBugCheckEx+0x19 abc7f0f4 829d5b52 abc7f638 82b59960 abc7f1f0 nt!KiFatalExceptionHandler+0x1a abc7f118 829d5b24 abc7f638 82b59960 abc7f1f0 nt!ExecuteHandler2+0x26 abc7f1e0 8292e595 abc7f638 abc7f1f0 00010037 nt!ExecuteHandler+0x24 abc7f61c 829ce781 abc7f638 00000000 abc7f718 nt!KiDispatchException+0x1b5 abc7f688 829d3062 ffffffff ffffffff ffffffff nt!KiDispatchTrapException+0x51 abc7f688 b8fd693a ffffffff ffffffff ffffffff nt!KiTrap0E+0x382 abc7f790 828b0368 b7cb5798 9d35e390 a9d2c220 condrv!CdpDispatchCleanup+0x1a abc7f7a8 82bd9e04 abc7fa74 b7cb5798 a9d2c220 nt!IofCallDriver+0x48 abc7f7e8 82bd49aa 00000000 a9d2c220 00000001 nt!IopCloseFile+0x184 abc7f8ac 82bb53b3 b7cb5798 45ff2480 00000000 nt!IopParseDevice+0xa6a abc7f99c 82bb7cb7 00000040 87ff2480 6c600001 nt!ObpLookupObjectName+0xea3 abc7fa3c 82beecb7 098cf240 87ff2480 6c600001 nt!ObOpenObjectByNameEx+0x1c7 abc7fc04 829cce6b 098cf240 098cf270 098cf2ac nt!NtQueryFullAttributesFile+0x15f abc7fc04 77cd5ef0 098cf240 098cf270 098cf2ac nt!KiSystemServicePostCall 098cf220 77cd352a 75ff982e 098cf240 098cf270 ntdll!KiFastSystemCallRet 098cf224 75ff982e 098cf240 098cf270 098cf2d0 ntdll!NtQueryFullAttributesFile+0xa 098cf2ac 0fcb8f87 085375a8 00000000 098cf2d0 KERNELBASE!GetFileAttributesExW+0x7e WARNING: Stack unwind information not available. Following frames may be wrong. 098cf350 10ec66a9 098cf54c 098cf520 00a90000 chrome!ChromeMain+0x34a47

mov edx,dword ptr [ecx]读0地址导致内存访问异常,蓝屏。

具体原因就是微软condrv.sys处理cleanup例程的时候对访问指针判断不够严谨,FileObject->FsContext未空,未作判断直接读取内容导致蓝屏。

condrv!CdpDispatchCleanup PAGE:00016925 mov eax, [ebp+Irp] PAGE:00016928 mov ecx, [eax+60h] //Irp->Tail.Overlay.CurrentStackLocation PAGE:0001692B mov ecx, [ecx+18h] //IoStack->FileObject PAGE:0001692E test ecx, ecx PAGE:00016930 jz loc_181F9 PAGE:00016936 mov ecx, [ecx+0Ch] //FileObject->FsContext PAGE:00016939 push esi PAGE:0001693A mov edx, [ecx] //ecx=0,读取违例

影响

我也往回看了几个老版本win10系统,condrv.sys同样存在一样的问题,说明这个已经存在很久了,只是最近刚被发现了。

粗略分析来看,FsContext一般来说并不能被攻击者控制,并且此处只是一个读内存问题,一般不能得到一个有效的漏洞攻击利用。

所以大家并不用特别担心,如果有人拿来恶作剧,最多就是让你电脑蓝屏重启一下,危害并不大。

但是,注意别在写文档、写代码等等情况下,还未保存数据的时候,中招了。

那么,节哀,刚刚辛辛苦苦写的东西肯定没了!

最后,等待微软修复吧。

最后的最后:

  1. 并不是只有chrome访问这个设备路径才有问题,所有使用chrome内核的浏览器都会中招
  2. 朋友发你一个看起来像txt文本的批处理文件,也会导致windows蓝屏。
  3. 以及其他各种脚本文件,点开之前都看看内容是不是存在设备路径\\.\globalroot\device\condrv\kernelconnect
  4. ...

(完)

【汉客儿原创】转载请注明出处:http://www.hankeer.org/article/chrome-bsod.html