Eine Sicherheitslücke in der Bibliothek Libvirt hat zur Folge, dass ein entfernter Angreifer Denial-of-Service-Attacken ausführen kann.
Ursache ist ein Programmierfehler im Storage-Pool-Manager beim Verarbeiten von Dateideskriptoren. Die Attacke können entfernte Benutzer ausführen, sofern sie Leseberechtigung besitzen. Verlangt der Angreifer das Auflisten aller Volumes, so kann es passieren, dass der Libvirtd-Prozess alle verfügbaren Dateideskriptoren verbraucht. Dadurch können andere Anwender den Dienst nicht mehr verwenden.
Der Programmierfehler befindet sich in der Quelltextdatei “daemon/remote.c”. Hier hat der Programmierer vergessen, den Speicher wieder freizugeben. Das Patch zur Reparatur ist entsprechend einfach:
--- a/daemon/remote.c +++ b/daemon/remote.c @@ -4202,6 +4202,8 @@ cleanup: virStorageVolFree(vols[i]); VIR_FREE(vols); } + if (pool) + virStoragePoolFree(pool); return rv; }
Es fügt lediglich eine Zeile zum Freigeben von Pool-Speicher
hinzu, womit die Schwachstelle beseitigt ist.
Betroffen sind die Libvirt-Versionen 1.0.5 und älter.

