CVE-2019-18421
 
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
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.
Se detectó un problema en Xen versiones hasta 4.12.x, permitiendo a usuarios del sistema operativo invitado PV de x86 alcanzar privilegios de sistema operativo host mediante el aprovechamiento de las condiciones de carrera en las operaciones de promoción y degradación de la página. Se presentan problemas con las operaciones de cambio de tipo de PV reiniciables. Para evitar el uso de tablas de páginas shadow para invitados PV, Xen expone las tablas de páginas de hardware actuales al invitado. Para impedir que el invitado modifique directamente estas tablas de páginas, Xen realiza un seguimiento de cómo son usadas las páginas utilizando un sistema de tipos; las páginas deben ser "promoted" antes de ser usadas como una tabla de páginas y "demoted" antes de ser usadas por cualquier otro tipo. Xen también permite promociones "recursive": es decir, un sistema operativo que promociona una página en una tabla de páginas L4 puede terminar haciendo que las páginas se promocionen a L3, lo que a su vez puede causar que las páginas se promocionen a L2, y así sucesivamente. Estas operaciones pueden tomar una cantidad de tiempo arbitrariamente grande y, por lo tanto, deben ser reiniciadas. Desafortunadamente, hacer reiniciables las operaciones de promoción y degradación de tablas de páginas recursivas es increíblemente complejo, y el código contiene varias carreras que, si son activadas, pueden hacer que Xen elimine o retenga conteos de tipos adicionales, lo que potencialmente permite a los invitados conseguir acceso de escritura a las tablas de páginas en uso. Un administrador invitado malicioso de PV puede escalar sus privilegios a los del host. Todos los sistemas x86 con invitados PV no confiables son vulnerables. Los invitados HVM y PVH no pueden ejercer esta vulnerabilidad.
CVSS Scores
SSVC
- Decision:-
Timeline
- 2019-10-24 CVE Reserved
- 2019-10-31 CVE Published
- 2024-08-05 CVE Updated
- 2024-10-24 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
CAPEC
References (9)
URL | Tag | Source |
---|---|---|
https://seclists.org/bugtraq/2020/Jan/21 | Mailing List |
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
http://www.openwall.com/lists/oss-security/2019/10/31/3 | 2023-11-07 | |
http://xenbits.xen.org/xsa/advisory-299.html | 2023-11-07 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Xen Search vendor "Xen" | Xen Search vendor "Xen" for product "Xen" | <= 4.12.1 Search vendor "Xen" for product "Xen" and version " <= 4.12.1" | x86 |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 9.0 Search vendor "Debian" for product "Debian Linux" and version "9.0" | - |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 10.0 Search vendor "Debian" for product "Debian Linux" and version "10.0" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 29 Search vendor "Fedoraproject" for product "Fedora" and version "29" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 30 Search vendor "Fedoraproject" for product "Fedora" and version "30" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 31 Search vendor "Fedoraproject" for product "Fedora" and version "31" | - |
Affected
| ||||||
Opensuse Search vendor "Opensuse" | Leap Search vendor "Opensuse" for product "Leap" | 15.0 Search vendor "Opensuse" for product "Leap" and version "15.0" | - |
Affected
|