Tried, Tested and Proven

Vulnerability title: Privilege Escalation in K7 Computing Multiple Products [K7FWFilt.sys]

CVE: CVE-2014-7136
Vendor: K7 Computing
Product: Multiple Products [K7FWFilt.sys]
Affected version: Earlier and including 11.0.1.5
Fixed version: 14.0.1.16
Reported by: Kyriakos Economou

Details:

Latest, and possibly earlier versions of K7FWFilt.sys kernel mode driver, also named as K7Firewall Packet Driver, suffers from a heap overflow condition that can be exploited locally by an attacker in order to execute code with kernel privileges. Successful exploitation of this bug results into vertical privilege escalation.

Technical Details:

The function handling IOCTL 0x830020C4 does not validate the size of the output buffer parameter passed in the DeviceIoControl API, which leads to a heap overflow on buffer data initialization. In particular, the function assumes that the output buffer has a size of 0x22C4 bytes. By declaring a smaller buffer we are able to overwrite other data and kernel objects that might follow and potentially control the execution flow via a corrupted kernel object.

ba31cb06 8b7d14 mov edi,dword ptr [ebp+14h] <--- EDI == allocated buffer
ba31cb09 ff7514 push dword ptr [ebp+14h]
ba31cb0c b9b1080000 mov ecx,8B1h <--- assume buffer size 0x8b1 * 4
ba31cb11 33c0 xor eax,eax <--- zero out EAX
ba31cb13 f3ab rep stos dword ptr es:[edi] <--- Heap Overflow

Impact:

This vulnerability could allow a malicious attacker to execute code as SYSTEM.

Exploit:

The proof of concept exploit is available.

Remediation:

Update the K7FWFilt.sys driver to the latest version.


Vendor status:

11/09/2014 Advisory created
15/09/2014 Vendor contacted
17/09/2014 Vendor working on a fix
22/09/2014 CVE obtained
07/10/2014 Fix confirmed
11/11/2014 Fix released
05/12/2014 Published
Copyright:

Copyright © Portcullis Computer Security Limited 2014, All rights reserved worldwide. Permission is hereby granted for the electronic redistribution of this information. It is not to be edited or altered in any way without the express written consent of Portcullis Computer Security Limited.

Disclaimer:

The information herein contained may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user’s risk. In no event shall the author/distributor (Portcullis Computer Security Limited) be held liable for any damages whatsoever arising out of or in connection with the use or spread of this information.