CVE: CVE-2015-8772
Vendor: McAfee – Intel Security
Reported by: Kyriakos Economou (@kyREcon)
Date of Release: 26/01/2016
Date of Fix: N/A
Affected Products: Multiple
Affected Version: McPvDrv.sys v4.6.111.0
Fixed Version: N/A
Advisory
McAfee File Lock Driver does not handle correctly IOCTL_DISK_VERIFY IOCTL requests, which leads to kernel memory leak through specifically crafted IOCTLs. Normally the IOCTL_DISK_VERIFY IOCTL is used to verify an extent on a fixed disk and doesn’t return any data.
We have verified this issue in the latest McAfee File Lock v5.x which ships with McAfee total protection suite.
However, other products that include this package will also be affected.
Vulnerable module: McPvDrv.sys v4.6.111.0
Earlier versions of this kernel driver are probably affected by the same issue.
Impact
A local attacker might be able to disclose sensitive information from kernel memory or crash the affected host.
Technical Details
When we send an IOCTL_DISK_VERIFY IOCTL request the input buffer parameter of DeviceIoControl function must be a pointer to a VERIFY_INFORMATION data structure.
typedef struct _VERIFY_INFORMATION { LARGE_INTEGER StartingOffset; DWORD Length; } VERIFY_INFORMATION, *PVERIFY_INFORMATION;
The kernel memory leak is generated by the fact that the McPvDrv.sys driver doesn’t validate the VERIFY_INFORMATION.Length which is controlled by our input buffer.
Furthermore, the driver trusts that value as the size of the input buffer allocated in kernel space, causing the associated function to read data passed the size of the specified input buffer and read arbitrary data from kernel address space back to userland into a specified output buffer.
Disclosure Log
Vendor Contacted: 16/09/2015
Request for feedback: 21/09/2015 – No response
Request for feedback: 08/10/2015 – No response
Request for feedback: 13/01/2016 – No response
Public Disclosure: 26/01/2016
References
https://www.nettitude.co.uk/mcafee-file-lock-driver-kernel-memory-leak/