libvirt libxl/libxl_driver.c libxlDomainGetNumaParameters Invalid Free escalada de privilegios
| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 8.9 | $0-$5k | 0.00 |
Resumen
Se ha identificado una vulnerabilidad clasificada como crítica en libvirt. Está afectada una función desconocida en la librería libxl/libxl_driver.c. El manejo da lugar a escalada de privilegios (Invalid Free). Esta vulnerabilidad se cataloga como CVE-2013-6457. Además, hay un exploit disponible. Se sugiere aplicar un parche para remediar este problema.
Detalles
Una vulnerabilidad fue encontrada en libvirt (Virtualization Software) y clasificada como crítica. La función libxlDomainGetNumaParameters en la biblioteca libxl/libxl_driver.c es afectada por esta vulnerabilidad. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase escalada de privilegios. Esto tiene repercusión sobre la confidencialidad, integridad y disponibilidad.
La vulnerabilidad fue publicada el 2013-12-20 por Dario Faggioli con identificación avoid crashing if calling `virsh numatune' on inactive domain con un posting (Mailing List) (confirmado). El advisory puede ser descargado de redhat.com. La vulnerabilidad es identificada como CVE-2013-6457. Se considera difícil de explotar. El ataque se puede efectuar a través de la red. Para explotarla se requiere una autentificación. Los detalles técnicos asi como un exploit público son conocidos. El motivo de esta vulnerabilidad es esta parte del código:
# ./daemon/libvirtd -v *** Error in `/home/xen/libvirt.git/daemon/.libs/lt-libvirtd': munmap_chunk(): invalid pointer: 0x00007fdd42592666 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x7bbe7)[0x7fdd3f767be7] /lib64/libxenlight.so.4.3(libxl_bitmap_dispose+0xd)[0x7fdd2c88c045] /home/xen/libvirt.git/daemon/.libs/../../src/.libs/libvirt_driver_libxl.so(+0x12d26)[0x7fdd2caccd26] /home/xen/libvirt.git/src/.libs/libvirt.so.0(virDomainGetNumaParameters+0x15c)[0x7fdd4247898c] /home/xen/libvirt.git/daemon/.libs/lt-libvirtd(+0x1d9a2)[0x7fdd42ecc9a2] /home/xen/libvirt.git/src/.libs/libvirt.so.0(virNetServerProgramDispatch+0x3da)[0x7fdd424e9eaa] /home/xen/libvirt.git/src/.libs/libvirt.so.0(+0x1a6f38)[0x7fdd424e3f38] /home/xen/libvirt.git/src/.libs/libvirt.so.0(+0xa81e5)[0x7fdd423e51e5] /home/xen/libvirt.git/src/.libs/libvirt.so.0(+0xa783e)[0x7fdd423e483e] /lib64/libpthread.so.0(+0x7c53)[0x7fdd3febbc53] /lib64/libc.so.6(clone+0x6d)[0x7fdd3f7e1dbd]
Fue declarado como prueba de concepto. Para el scanner Nessus se dispone de un plugin ID 75266 (openSUSE Security Update : libvirt (openSUSE-SU-2014:0268-1)), que puede ayudar a determinar la existencia del riesgo analizado.
Aplicando un parche es posible eliminar el problema. El parche puede ser descargado de libvirt.org. Una solución posible ha sido publicada inmediatamente después de la publicación de la vulnerabilidad. La vulnerabilidad se tratará con las siguientes líneas de código:
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 29aa6c7..d91744f 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -3958,6 +3958,8 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
* the filtering on behalf of older clients that can't parse it. */
flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
+ libxl_bitmap_init(&nodemap);
+
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
@@ -3972,8 +3974,6 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
priv = vm->privateData;
- libxl_bitmap_init(&nodemap);
-
if ((*nparams) == 0) {
*nparams = LIBXL_NUMA_NPARAM;
ret = 0;La vulnerabilidad también está documentado en las bases de datos X-Force (90446), Tenable (75266), SecurityFocus (BID 64963†), OSVDB (102254†) y Secunia (SA56308†). Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Producto
Escribe
Nombre
Licencia
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Confiabilidad: 🔍
CVSSv3
VulDB Puntuación meta base: 9.9VulDB Puntuación meta temporal: 8.9
VulDB Puntuación base: 9.9
VulDB Puntuación temporal: 8.9
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complejidad | Autenticación | Confidencialidad | Integridad | Disponibilidad |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍
NVD Puntuación base: 🔍
Explotación
Nombre: Invalid FreeClase: Escalada de privilegios / Invalid Free
CWE: CWE-264
CAPEC: 🔍
ATT&CK: 🔍
Físico: No
Local: No
Remoto: Sí
Disponibilidad: 🔍
Acceso: Público
Estado: Prueba de concepto
EPSS Score: 🔍
EPSS Percentile: 🔍
Predicción de precios: 🔍
Estimación del precio actual: 🔍
| 0-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Nessus ID: 75266
Nessus Nombre: openSUSE Security Update : libvirt (openSUSE-SU-2014:0268-1)
Nessus Archivo: 🔍
Nessus Riesgo: 🔍
Nessus Familia: 🔍
Nessus Port: 🔍
OpenVAS ID: 841696
OpenVAS Nombre: Ubuntu Update for libvirt USN-2093-1
OpenVAS Archivo: 🔍
OpenVAS Familia: 🔍
Qualys ID: 🔍
Qualys Nombre: 🔍
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ParcheEstado: 🔍
Tiempo de reacción: 🔍
Hora de 0 días: 🔍
Tiempo de exposición: 🔍
Parche: libvirt.org
Línea de tiempo
2013-11-04 🔍2013-12-20 🔍
2013-12-20 🔍
2013-12-20 🔍
2013-12-20 🔍
2014-01-15 🔍
2014-01-21 🔍
2014-01-24 🔍
2014-01-30 🔍
2014-06-13 🔍
2021-06-08 🔍
Fuentes
Aviso: avoid crashing if calling `virsh numatune' on inactive domainInvestigador: Dario Faggioli
Estado: Confirmado
Confirmación: 🔍
CVE: CVE-2013-6457 (🔍)
GCVE (CVE): GCVE-0-2013-6457
GCVE (VulDB): GCVE-100-12003
OVAL: 🔍
X-Force: 90446
SecurityFocus: 64963 - libvirt 'libxlDomainGetNumaParameters()' Function Local Denial of Service Vulnerability
Secunia: 56308 - libvirt "libxlDomainGetNumaParameters()" Invalid Free Vulnerability, Less Critical
OSVDB: 102254
Vulnerability Center: 43106 - Libvirt before 1.2.1 Remote DoS or Code Execution Vulnerability by Calling \x27Virsh Numatune\x27 on Inactive Domain, Medium
scip Labs: https://www.scip.ch/en/?labs.20161013
Véase también: 🔍
Artículo
Fecha de creación: 2014-01-21 09:39Actualizado: 2021-06-08 13:57
Cambios: 2014-01-21 09:39 (79), 2017-08-21 08:50 (11), 2021-06-08 13:57 (3)
Completo: 🔍
Cache ID: 216::103
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.