ID CVE-2019-18421
Summary An issue was discovered in Xen through 4.12.x allowing x86 PV guest OS users to gain host OS privileges by leveraging race conditions in pagetable promotion and demotion operations. There are issues with restartable PV type change operations. To avoid using shadow pagetables for PV guests, Xen exposes the actual hardware pagetables to the guest. In order to prevent the guest from modifying these page tables directly, Xen keeps track of how pages are used using a type system; pages must be "promoted" before being used as a pagetable, and "demoted" before being used for any other type. Xen also allows for "recursive" promotions: i.e., an operating system promoting a page to an L4 pagetable may end up causing pages to be promoted to L3s, which may in turn cause pages to be promoted to L2s, and so on. These operations may take an arbitrarily large amount of time, and so must be re-startable. Unfortunately, making recursive pagetable promotion and demotion operations restartable is incredibly complicated, and the code contains several races which, if triggered, can cause Xen to drop or retain extra type counts, potentially allowing guests to get write access to in-use pagetables. A malicious PV guest administrator may be able to escalate their privilege to that of the host. All x86 systems with untrusted PV guests are vulnerable. HVM and PVH guests cannot exercise this vulnerability.
References
Vulnerable Configurations
  • cpe:2.3:o:xen:xen:3.2.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:3.2.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.0.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.0.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.0.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.0.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.0.2:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.0.2:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.0.3:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.0.3:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.0.4:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.0.4:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.1.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.1.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.1.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.1.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.1.2:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.1.2:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.1.3:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.1.3:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.1.4:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.1.4:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.1.5:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.1.5:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.2.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.2.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.2.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.2.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.2.2:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.2.2:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.3.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.3.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.4.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.4.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.5.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.5.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.6.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.6.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.6.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.6.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.6.3:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.6.3:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.6.4:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.6.4:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.6.5:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.6.5:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.6.6:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.6.6:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.7.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.7.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.7.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.7.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.7.2:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.7.2:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.7.3:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.7.3:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.7.4:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.7.4:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.7.6:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.7.6:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.8.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.8.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.8.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.8.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.8.2:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.8.2:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.8.3:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.8.3:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.8.4:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.8.4:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.9.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.9.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.9.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.9.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.9.2:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.9.2:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.10.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.10.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.10.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.10.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.11.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.11.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.11.4:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.11.4:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.12.0:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.12.0:*:*:*:*:*:x86:*
  • cpe:2.3:o:xen:xen:4.12.1:*:*:*:*:*:x86:*
    cpe:2.3:o:xen:xen:4.12.1:*:*:*:*:*:x86:*
  • cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*
    cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*
  • cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*
    cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*
  • cpe:2.3:o:fedoraproject:fedora:29:*:*:*:*:*:*:*
    cpe:2.3:o:fedoraproject:fedora:29:*:*:*:*:*:*:*
  • cpe:2.3:o:fedoraproject:fedora:30:*:*:*:*:*:*:*
    cpe:2.3:o:fedoraproject:fedora:30:*:*:*:*:*:*:*
  • cpe:2.3:o:fedoraproject:fedora:31:*:*:*:*:*:*:*
    cpe:2.3:o:fedoraproject:fedora:31:*:*:*:*:*:*:*
  • cpe:2.3:o:opensuse:leap:15.0:*:*:*:*:*:*:*
    cpe:2.3:o:opensuse:leap:15.0:*:*:*:*:*:*:*
CVSS
Base: 7.1 (as of 29-03-2023 - 18:21)
Impact:
Exploitability:
CWE CWE-362
CAPEC
  • Leveraging Race Conditions
    The adversary targets a race condition occurring when multiple processes access and manipulate the same resource concurrently, and the outcome of the execution depends on the particular order in which the access takes place. The adversary can leverage a race condition by "running the race", modifying the resource and modifying the normal execution flow. For instance, a race condition can occur while accessing a file: the adversary can trick the system by replacing the original file with his version and cause the system to read the malicious file.
  • Leveraging Time-of-Check and Time-of-Use (TOCTOU) Race Conditions
    This attack targets a race condition occurring between the time of check (state) for a resource and the time of use of a resource. A typical example is file access. The adversary can leverage a file access race condition by "running the race", meaning that they would modify the resource between the first time the target program accesses the file and the time the target program uses the file. During that period of time, the adversary could replace or modify the file, causing the application to behave unexpectedly.
Access
VectorComplexityAuthentication
NETWORK HIGH SINGLE
Impact
ConfidentialityIntegrityAvailability
COMPLETE COMPLETE COMPLETE
cvss-vector via4 AV:N/AC:H/Au:S/C:C/I:C/A:C
refmap via4
bugtraq 20200114 [SECURITY] [DSA 4602-1] xen security update
debian DSA-4602
fedora
  • FEDORA-2019-376ec5c107
  • FEDORA-2019-865bb16900
  • FEDORA-2019-cbb732f760
gentoo GLSA-202003-56
misc http://xenbits.xen.org/xsa/advisory-299.html
mlist [oss-security] 20191031 Xen Security Advisory 299 v4 (CVE-2019-18421) - Issues with restartable PV type change operations
suse openSUSE-SU-2019:2506
Last major update 29-03-2023 - 18:21
Published 31-10-2019 - 14:15
Last modified 29-03-2023 - 18:21
Back to Top