vendor:
Windows
by:
Project Zero
7,8
CVSS
HIGH
Out-of-bounds write
787
CWE
Product Name: Windows
Affected Version From: N/A
Affected Version To: N/A
Patch Exists: NO
Related CWE: N/A
CPE: N/A
Metasploit:
N/A
Other Scripts:
N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References:
N/A
Nuclei Metadata: N/A
Platforms Tested: Windows
2018
Windows Kernel Crash in memmove() Function
We have encountered Windows kernel crashes in the memmove() function called by nt!CmpCheckValueList while loading corrupted registry hive files. The root cause of the bug seems to be that the nt!CmpCheckValueList function miscalculates the number of items to be shifted to the left in an array with 4-byte entries, resulting in the following call: RtlMoveMemory(&array[x], &array[x + 1], 4 * (--y - x)); Here, the eventual value of y is negative, resulting in a large number being passed to memmove().
Mitigation:
Ensure that the registry hive files are not corrupted and are properly validated before loading them.