Wer die Lücke ausnutzte, agierte anschließend mit den Rechten des imitierten Clients und erhielt Zugriff auf den Cluster und dessen virtuelle Maschinen. Handelt es sich um ein privilegiertes Konto, könne der Angreifer laut Canonical „Root-Zugriff auf die Host-Maschine" erlangen.
LXD und MicroCloud erlauben entfernten Clients den API-Zugriff über gegenseitiges TLS: Der Client weist sich mit einem Zertifikat aus, und als vertrauenswürdig gilt er, wenn dieses Zertifikat im Trust Store des Servers hinterlegt ist. Fehlerhaft war die Prüfung dieses Zertifikats. Der Server verglich jedes vom Client übermittelte Zertifikat mit dem Trust Store — eine TLS-Verbindung belegt jedoch nur, dass der Client den privaten Schlüssel zum ersten Zertifikat der Kette, dem Leaf, besitzt. Der Rest der Kette ist frei wählbar. Ein Angreifer konnte daher das nicht geheime öffentliche Zertifikat eines vertrauenswürdigen Clients hinter sein eigenes in die Kette hängen und wurde vom Server als dieser Client akzeptiert.
Ein eigenständiger LXD-Server legt die betroffene API standardmäßig nicht offen: Er lauscht nur auf einem lokalen Socket, solange ein Administrator die Netzwerk-API nicht über die Einstellung core.https_address aktiviert. MicroCloud, das mehrere LXD-Maschinen zu einem Cluster verbindet, hat eine spezifische Schwachstelle: Laut Canonical kann sich ein Angreifer, der das öffentliche Zertifikat eines Mitglieds beim Beitritt zum Cluster mitschneidet, anschließend als dieses Mitglied anmelden.
Der CVE-Eintrag führt LXD 4.0.14, 5.0.10, 5.21.8 und 6.9 als betroffen auf — jeweils vor dem nachfolgenden korrigierten Release. Canonical nennt die entsprechenden korrigierten Snap-Versionen. Die Archivpakete von LXD in Ubuntu sind als nicht betroffen beziehungsweise nicht ausgeliefert verzeichnet; die Korrekturen erfolgen somit über die Snaps.
Entdeckt wurde der Fehler nicht bei Canonical: Gemeldet hat ihn das Incus-Projekt, das als Community-Fork von LXD entstanden ist. Canonical bestätigte, dass LXD ebenfalls betroffen ist. Incus hat dieselbe Lücke in Version 7.6.0 behoben, zusammen mit 17 weiteren Sicherheitsproblemen.
Hinweise auf eine Ausnutzung in freier Wildbahn gibt es nicht. Der CVE-Eintrag enthält eine auf den 30. Oktober datierte Einschätzung der US-Behörde CISA, wonach keine Ausnutzung bekannt ist; die Lücke steht nicht auf der KEV-Liste der CISA, und ein funktionierender Exploit wurde nicht veröffentlicht.
Empfohlene Schritte:
- LXD und MicroCloud auf die korrigierten Versionen aktualisieren; bei Snap-Installationen mit sudo snap refresh lxd und sudo snap refresh microcloud.
- Nach dem Refresh die tatsächlich installierte Version prüfen: Canonical wies darauf hin, dass die korrigierten LXD-Point-Releases zum Zeitpunkt der Veröffentlichung des Sicherheitshinweises noch vom Candidate- in den Stable-Kanal ausgerollt wurden.
- Den Netzwerkzugang zur API einschränken, solange kein Update eingespielt ist. Canonicals Hinweis nennt für LXD keinen temporären Workaround; das Incus-Projekt erklärte zur selben Lücke, es gebe keine Konfigurationslösung, der einzige Schritt sei die Beschränkung des Netzwerkzugriffs auf den Listener.
- Incus-Anwender sollten auf 7.6.0 wechseln.
