It was found that the Red Hat Enterprise Linux 8 kpatch update did not include the complete fix for CVE-2018-12207. A flaw was found in the way Intel CPUs handle inconsistency between, virtual to physical memory address translations in CPUs local cache and system softwares Paging structure entries. A privileged guest user may use this flaw to induce a hardware Machine Check Error on the host processor, resulting in a severe DoS scenario by halting the processor. System software like OS OR Virtual Machine Monitor (VMM) use virtual memory system for storing program instructions and data in memory. Virtual Memory system uses Paging structures like Page Tables and Page Directories to manage system memory. The processors Memory Management Unit (MMU) uses Paging structure entries to translate programs virtual memory addresses to physical memory addresses. The processor stores these address translations into its local cache buffer called - Translation Lookaside Buffer (TLB). TLB has two parts, one for instructions and other for data addresses. System software can modify its Paging structure entries to change address mappings OR certain attributes like page size etc. Upon such Paging structure alterations in memory, system software must invalidate the corresponding address translations in the processors TLB cache. But before this TLB invalidation takes place, a privileged guest user may trigger an instruction fetch operation, which could use an already cached, but now invalid, virtual to physical address translation from Instruction TLB (ITLB). Thus accessing an invalid physical memory address and resulting in halting the processor due to the Machine Check Error (MCE) on Page Size Change.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Enterprise_linux | Redhat | 8.0 (including) | 8.0 (including) |
Enterprise_linux_eus | Redhat | 8.1 (including) | 8.1 (including) |
Red Hat Enterprise Linux 8 | RedHat | kpatch-patch | * |
Linux | Ubuntu | trusty | * |
Linux-aws | Ubuntu | trusty | * |
Linux-azure | Ubuntu | trusty | * |
Linux-lts-xenial | Ubuntu | trusty | * |