// For flags

CVE-2019-18423

 

Severity Score

8.8
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

An issue was discovered in Xen through 4.12.x allowing ARM guest OS users to cause a denial of service via a XENMEM_add_to_physmap hypercall. p2m->max_mapped_gfn is used by the functions p2m_resolve_translation_fault() and p2m_get_entry() to sanity check guest physical frame. The rest of the code in the two functions will assume that there is a valid root table and check that with BUG_ON(). The function p2m_get_root_pointer() will ignore the unused top bits of a guest physical frame. This means that the function p2m_set_entry() will alias the frame. However, p2m->max_mapped_gfn will be updated using the original frame. It would be possible to set p2m->max_mapped_gfn high enough to cover a frame that would lead p2m_get_root_pointer() to return NULL in p2m_get_entry() and p2m_resolve_translation_fault(). Additionally, the sanity check on p2m->max_mapped_gfn is off-by-one allowing "highest mapped + 1" to be considered valid. However, p2m_get_root_pointer() will return NULL. The problem could be triggered with a specially crafted hypercall XENMEM_add_to_physmap{, _batch} followed by an access to an address (via hypercall or direct access) that passes the sanity check but cause p2m_get_root_pointer() to return NULL. A malicious guest administrator may cause a hypervisor crash, resulting in a Denial of Service (DoS). Xen version 4.8 and newer are vulnerable. Only Arm systems are vulnerable. x86 systems are not affected.

Se detectó un problema en Xen versiones hasta 4.12.x, permitiendo a usuarios del sistema operativo invitado de ARM causar una denegación de servicio por medio de una hipercall Xmapme_add_to_physmap. p2m-)max_mapped_gfn es utilizado por las funciones p2m_resolve_translation_fault() y p2m_get_entry() para comprobar trama física del invitado. El resto del código en las dos funciones asumirá que existe una tabla root válida y lo comprobará con BUG_ON(). La función p2m_get_root_pointer() ignorará los bits superiores no utilizados de una trama física de invitado. Esto significa que la función p2m_set_entry() renombrará la trama. Sin embargo, p2m-)max_mapped_gfn será actualizada utilizando la trama original. Sería posible establecer p2m-)max_mapped_gfn lo suficientemente alto como para cubrir una trama que conllevaría a p2m_get_root_pointer() a devolver NULL en p2m_get_entry() y p2m_resolve_translation_fault(). Adicionalmente, la comprobación de saneamiento en p2m-)max_mapped_gfn está por un paso permitiendo que el "highest mapped + 1" sea considerado válido. Sin embargo, p2m_get_root_pointer() devolverá NULL. El problema podría desencadenarse con una hipercall especialmente diseñada XENMEM_add_to_physmap{, _batch} seguido de un acceso a una dirección (por medio de hipercall o acceso directo) que pasa la comprobación de saneamiento pero hace que la función p2m_get_root_pointer() devuelva NULL. Un administrador invitado malicioso puede causar un bloqueo del hipervisor, resultando en una Denegación de Servicio (DoS). Xen versión 4.8 y mas recientes son vulnerables. Solo los sistemas Arm son vulnerables. Los sistemas x86 no están afectados.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
Attack Vector
Network
Attack Complexity
Medium
Authentication
Single
Confidentiality
Complete
Integrity
Complete
Availability
Complete
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2019-10-24 CVE Reserved
  • 2019-10-31 CVE Published
  • 2023-11-08 EPSS Updated
  • 2024-08-05 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-193: Off-by-one Error
CAPEC
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.8 <= 4.12.1
Search vendor "Xen" for product "Xen" and version " >= 4.8 <= 4.12.1"
arm
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