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
mdeslaurhypervisor packages are in universe. For
issues in the hypervisor, add appropriate
tags to each section, ex:
Tags_xen: universe-binary
Source: xen (LP Ubuntu Debian)
Ubuntu 12.04 ESM (Precise Pangolin):DNE
Ubuntu 14.04 ESM (Trusty Tahr):DNE
Ubuntu 16.04 LTS (Xenial Xerus):needs-triage
Ubuntu 18.04 LTS (Bionic Beaver):needs-triage
Ubuntu 20.04 LTS (Focal Fossa):not-affected (4.11.3+24-g14b62ab3e5-1ubuntu1)
Ubuntu 20.10 (Groovy Gorilla):not-affected (4.11.3+24-g14b62ab3e5-1ubuntu1)
Binaries built from this source package are in universe and so are supported by the community. For more details see
More Information

Updated: 2020-10-24 06:57:32 UTC (commit 69e225d81a6ee3e2e014950178db797c5d4e5009)