Canonical LXD w wersjach 4.12–6.7 zawiera niekompletną listę blokowanych opcji konfiguracyjnych maszyn wirtualnych, co pozwala atakującemu z uprawnieniem can_edit na eskalację uprawnień do poziomu administratora klastra LXD, a następnie do roota na hoście. Podatność jest krytyczna ze względu na możliwość pełnego przejęcia hosta z poziomu gościa VM.
▸ Pokaż oryginał (EN)
Canonical LXD versions 4.12 through 6.7 contain an incomplete denylist in isVMLowLevelOptionForbidden (lxd/project/limits/permissions.go), which omits raw.apparmor and raw.qemu.conf from the set of keys blocked under the restricted.virtual-machines.lowlevel=block project restriction. A remote attacker with can_edit permission on a VM instance in a restricted project can inject an AppArmor rule and a QEMU chardev configuration that bridges the LXD Unix socket into the guest VM, enabling privilege escalation to LXD cluster administrator and subsequently to host root.
Funkcja isVMLowLevelOptionForbidden w pliku lxd/project/limits/permissions.go nie uwzględnia kluczy raw.apparmor oraz raw.qemu.conf na liście opcji blokowanych przez restrykcję restricted.virtual-machines.lowlevel=block. Atakujący posiadający uprawnienie can_edit na instancji VM w ograniczonym projekcie może wstrzyknąć własną regułę AppArmor oraz konfigurację QEMU chardev, która tworzy pomost (bridge) między gniazdem Unix LXD a maszyną gościa. Uzyskany w ten sposób dostęp do gniazda LXD umożliwia wydawanie poleceń z poziomem uprawnień administratora klastra, co ostatecznie prowadzi do eskalacji do roota na hoście.
Atakujący może uzyskać pełne uprawnienia administratora klastra LXD, a następnie przejąć kontrolę nad systemem hosta z uprawnieniami roota, co oznacza całkowity kompromis infrastruktury.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (pull request #17909 w repozytorium canonical/lxd oraz advisory GHSA-fm2x-c5qw-4h6f). Zaleca się aktualizację do wersji wyższej niż 6.7. Tymczasowo należy rozważyć ograniczenie uprawnień can_edit na instancjach VM w projektach z włączoną restrykcją lowlevel=block.
Canonical LXD w wersjach od 4.12 do 6.7 włącznie, przy skonfigurowanej restrykcji restricted.virtual-machines.lowlevel=block w projektach z maszynami wirtualnymi.
Podatność wymaga uprawnienia can_edit na instancji VM w ograniczonym projekcie (PR:H w wektorze CVSS), co ogranicza powierzchnię ataku do użytkowników posiadających podwyższone uprawnienia wewnątrz środowiska LXD. Zasięg ataku wykracza poza komponent inicjalny (S:C w wektorze CVSS).
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HCanonical Lxd
APPCanonical4.12 – 5.0.65.21.0 – 5.21.46.0 – 6.7
Powiązane podatności
Canonical LXD: pominięcie ograniczeń projektu przy imporcie backupu
Canonical LXD: privilege escalation do admina klastra przez brak walidacji pola Type
A privilege escalation vulnerability exists in LXD from 6.0 before 6.9, 5.21.0 before 5.21.5, and 5.0.0 before...
Broken Access Control in the devLXDInstancePatchHandler component of Canonical LXD allows an untrusted guest t...
Privilege Escalation in operations API in Canonical LXD <6.5 on multiple platforms allows attacker with read p...