libvirt libxl/libxl_driver.c libxlDomainGetNumaParameters Invalid Free erweiterte Rechte
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 8.9 | $0-$5k | 0.00 |
Zusammenfassung
Eine Schwachstelle wurde in libvirt gefunden. Sie wurde als kritisch eingestuft. Es ist betroffen die Funktion libxlDomainGetNumaParameters in der Bibliothek libxl/libxl_driver.c. Mittels Manipulieren mit unbekannten Daten kann eine erweiterte Rechte-Schwachstelle (Invalid Free) ausgenutzt werden.
Eine eindeutige Identifikation der Schwachstelle wird mit CVE-2013-6457 vorgenommen. Zusätzlich gibt es einen verfügbaren Exploit.
Es ist ratsam, einen Patch zu implementieren, um dieses Problem zu beheben.
Details
Es wurde eine Schwachstelle in libvirt - die betroffene Version ist nicht klar definiert - (Virtualization Software) ausgemacht. Sie wurde als kritisch eingestuft. Dabei betrifft es die Funktion libxlDomainGetNumaParameters der Bibliothek libxl/libxl_driver.c. Mit der Manipulation mit einer unbekannten Eingabe kann eine erweiterte Rechte-Schwachstelle (Invalid Free) ausgenutzt werden. Im Rahmen von CWE wurde eine Klassifizierung als CWE-264 vorgenommen. Die Auswirkungen sind bekannt für Vertraulichkeit, Integrität und Verfügbarkeit. Die Zusammenfassung von CVE lautet:
The libxlDomainGetNumaParameters function in the libxl driver (libxl/libxl_driver.c) in libvirt before 1.2.1 does not properly initialize the nodemap, which allows local users to cause a denial of service (invalid free operation and crash) or possibly execute arbitrary code via an inactive domain to the virsh numatune command.Die Schwachstelle wurde am 20.12.2013 durch Dario Faggioli als avoid crashing if calling `virsh numatune' on inactive domain in Form eines bestätigten Postings (Mailing List) publiziert. Das Advisory findet sich auf redhat.com. Die Identifikation der Schwachstelle wird seit dem 04.11.2013 mit CVE-2013-6457 vorgenommen. Sie ist schwierig auszunutzen. Der Angriff kann über das Netzwerk erfolgen. Das Ausnutzen erfordert eine einfache Authentisierung. Es sind technische Details sowie ein öffentlicher Exploit zur Schwachstelle bekannt. Diese Schwachstelle wird durch das MITRE ATT&CK als Angriffstechnik T1068 bezeichnet. Folgender Code zeichnet sich für das Problem veantwortlich:
# ./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]Das Advisory weist darauf hin:
libxl: avoid crashing if calling `virsh numatune' on inactive domain by, in libxlDomainGetNumaParameters(), calling libxl_bitmap_init() as soon as possible, which avoids getting to 'cleanup:', where libxl_bitmap_dispose() happens, without having initialized the nodemap, and hence crashing after some invalid free()-s:Er wird als proof-of-concept gehandelt. Für den Vulnerability Scanner Nessus wurde am 13.06.2014 ein Plugin mit der ID 75266 (openSUSE Security Update : libvirt (openSUSE-SU-2014:0268-1)) herausgegeben, womit die Existenz der Schwachstelle geprüft werden kann. Es wird der Family SuSE Local Security Checks zugeordnet. Der kommerzielle Vulnerability Scanner Qualys bietet das Plugin 195783 (Ubuntu Security Notification for Libvirt Vulnerabilities (USN-2093-1)) zur Prüfung der Schwachstelle an.
Die Schwachstelle lässt sich durch das Einspielen eines Patches lösen. Dieser kann von libvirt.org bezogen werden. Das Erscheinen einer Gegenmassnahme geschah sofort nach der Veröffentlichung der Schwachstelle. Die Entwickler haben nachweislich unmittelbar gehandelt. Die Schwachstelle wird durch folgenden Code angegangen:
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;Unter anderem wird der Fehler auch in den Datenbanken von X-Force (90446), Tenable (75266), SecurityFocus (BID 64963†), OSVDB (102254†) und Secunia (SA56308†) dokumentiert. Die Schwachstellen VDB-11780, VDB-11995, VDB-11999 und VDB-13182 sind ähnlich. Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Produkt
Typ
Name
Lizenz
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 9.9VulDB Meta Temp Score: 8.9
VulDB Base Score: 9.9
VulDB Temp Score: 8.9
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍
NVD Base Score: 🔍
Exploiting
Name: Invalid FreeKlasse: Erweiterte Rechte / Invalid Free
CWE: CWE-264
CAPEC: 🔍
ATT&CK: 🔍
Physisch: Nein
Lokal: Nein
Remote: Ja
Verfügbarkeit: 🔍
Zugang: öffentlich
Status: Proof-of-Concept
EPSS Score: 🔍
EPSS Percentile: 🔍
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Nessus ID: 75266
Nessus Name: openSUSE Security Update : libvirt (openSUSE-SU-2014:0268-1)
Nessus Datei: 🔍
Nessus Risiko: 🔍
Nessus Family: 🔍
Nessus Port: 🔍
OpenVAS ID: 841696
OpenVAS Name: Ubuntu Update for libvirt USN-2093-1
OpenVAS Datei: 🔍
OpenVAS Family: 🔍
Qualys ID: 🔍
Qualys Name: 🔍
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: PatchStatus: 🔍
Reaktionszeit: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Patch: libvirt.org
Timeline
04.11.2013 🔍20.12.2013 🔍
20.12.2013 🔍
20.12.2013 🔍
20.12.2013 🔍
15.01.2014 🔍
21.01.2014 🔍
24.01.2014 🔍
30.01.2014 🔍
13.06.2014 🔍
08.06.2021 🔍
Quellen
Advisory: avoid crashing if calling `virsh numatune' on inactive domainPerson: Dario Faggioli
Status: Bestätigt
Bestätigung: 🔍
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/?labs.20161013
Siehe auch: 🔍
Eintrag
Erstellt: 21.01.2014 09:39Aktualisierung: 08.06.2021 13:57
Anpassungen: 21.01.2014 09:39 (79), 21.08.2017 08:50 (11), 08.06.2021 13:57 (3)
Komplett: 🔍
Cache ID: 216::103
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.