// For flags

CVE-2021-28687

 

Severity Score

5.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

HVM soft-reset crashes toolstack libxl requires all data structures passed across its public interface to be initialized before use and disposed of afterwards by calling a specific set of functions. Many internal data structures also require this initialize / dispose discipline, but not all of them. When the "soft reset" feature was implemented, the libxl__domain_suspend_state structure didn't require any initialization or disposal. At some point later, an initialization function was introduced for the structure; but the "soft reset" path wasn't refactored to call the initialization function. When a guest nwo initiates a "soft reboot", uninitialized data structure leads to an assert() when later code finds the structure in an unexpected state. The effect of this is to crash the process monitoring the guest. How this affects the system depends on the structure of the toolstack. For xl, this will have no security-relevant effect: every VM has its own independent monitoring process, which contains no state. The domain in question will hang in a crashed state, but can be destroyed by `xl destroy` just like any other non-cooperating domain. For daemon-based toolstacks linked against libxl, such as libvirt, this will crash the toolstack, losing the state of any in-progress operations (localized DoS), and preventing further administrator operations unless the daemon is configured to restart automatically (system-wide DoS). If crashes "leak" resources, then repeated crashes could use up resources, also causing a system-wide DoS.

HVM soft-reset bloquea toolstack libxl requiere que todas las estructuras de datos pasadas a través de su interfaz pública sean inicializadas antes de usarlas y eliminadas después llamando a un conjunto específico de funciones. Muchas estructuras de datos internas también requieren esta disciplina de inicialización y eliminación, pero no todas. Cuando se implementó la funcionalidad "soft reset", la estructura libxl__domain_suspend_state no requería ninguna inicialización o eliminación. En algún momento posterior, se introdujo una función de inicialización para la estructura; pero la ruta "soft reset" no se refactorizó para llamar a la función de inicialización. Cuando un nwo invitado inicia un "soft reset", la estructura de datos no inicializada conlleva a una función assert() cuando el código posterior encuentra la estructura en un estado inesperado. El efecto de esto es que se bloquea el proceso que monitoriza el huésped. Cómo afecta esto al sistema depende de la estructura de la pila de herramientas. Para xl, esto no tendrá ningún efecto relevante para la seguridad: cada VM presenta su propio proceso de monitorización independiente, que no contiene ningún estado. El dominio en cuestión se colgará en un estado de colapso, pero puede ser destruido por "xl destroy" como cualquier otro dominio no cooperante. Para las pilas de herramientas basadas en daemon enlazadas con libxl, como libvirt, esto bloqueará la pila de herramientas, perdiendo el estado de cualquier operación en curso (DoS localizado), e impidiendo más operaciones del administrador a menos que el demonio esté configurado para reiniciarse automáticamente (DoS en todo el sistema). Si los bloqueos "leak" recursos, entonces los bloqueos repetidos podrían usar recursos, causando también una DoS a nivel de sistema

*Credits: This issue was discovered by Olaf Hering.
CVSS Scores
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
Attack Vector
Local
Attack Complexity
Low
Authentication
None
Confidentiality
None
Integrity
None
Availability
Complete
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2021-03-18 CVE Reserved
  • 2021-06-11 CVE Published
  • 2023-03-08 EPSS Updated
  • 2024-08-03 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-909: Missing Initialization of Resource
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.12 <= 4.15.0
Search vendor "Xen" for product "Xen" and version " >= 4.12 <= 4.15.0"
-
Affected
Xen
Search vendor "Xen"
Xen
Search vendor "Xen" for product "Xen"
4.15.0
Search vendor "Xen" for product "Xen" and version "4.15.0"
rc1
Affected