CVE-2026-48754
NiskieCVSS 2.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 13 - wyżej niż 13% wszystkich znanych CVE
Streszczenie
Incus to menedżer kontenerów systemowych i maszyn wirtualnych. Przed wersją 7.1.0, funkcja `(*backend).createDependentVolumesFromBackup` w `internal/server/storage/backend.go` zawiera grupę niechronionych wyłuskań wskaźników na polach `VolumeSnapshots[i]`, `Volume` i `Pool` każdego wpisu wolumenu zależnego. Uwierzytelniony użytkownik z uprawnieniem `can_create_instances` w dowolnym projekcie może doprowadzić do awarii demona `incusd` poprzez przesłanie archiwum backupu instancji, w którym blok `dependent_volumes[*]` zawiera wskaźnik nil snapshotu (lub pomija `volume:` / `pool:`). Jest to wariant siostrzanego pola poprawki z 2026-05-04 `d768f81c0a1d985f35ae56219519822b080bf5e3` ("Properly check dependent volumes on import"). Ten commit dodał `if disk == nil` na początku zewnętrznej pętli, ale nie zabezpieczył czterech pól pod-wskaźników, które ciało pętli wyłuskuje bezpośrednio. Wersja 7.1.0 zawiera zaktualizowaną poprawkę.
Ocena ryzyka
Ryzyko obejmuje możliwość awarii demona incusd przez uwierzytelnionego użytkownika, co może prowadzić do przerw w działaniu usług i odmowy usługi.
Rekomendacja
Zaleca się aktualizację Incus do wersji 7.1.0 lub nowszej, która zawiera poprawkę.
Inne podatności w Incus
Zobacz wszystkie- CVE-2026-55622Wysokie
Incus przed wersją 7.2.0 zawiera brak kontroli autoryzacji przy kopiowaniu instancji, co pozwala atakującemu znającemu nazwę projektu i instancji, do których nie ma dostępu, na skopiowanie instancji do nowego projektu.
- CVE-2026-55621Wysokie
Incus przed wersją 7.2.0 ma brak autoryzacji przy kopiowaniu woluminów niestandardowych. Atakujący znający nazwę projektu, do którego nie ma dostępu, oraz nazwę woluminu w tym projekcie, może skopiować wolumin do nowego projektu. Może to pozwolić na dostęp do sekretów w woluminach, do których nie jest upoważniony.
- CVE-2026-47753Średnie
Incus przed wersją 7.1.0 zawiera podatność na dereferencję wskaźnika null w funkcji `(*backend).CreateInstanceFromBackup`. Uwierzytelniony użytkownik z uprawnieniami do tworzenia instancji może zdalnie wywołać awarię demona Incus, przesyłając spreparowany plik kopii zapasowej, co prowadzi do odmowy usługi dla wszystkich projektów na danym członku klastra.
- CVE-2026-23954Wysokie
Incus w wersjach 6.21.0 i niższych umożliwia użytkownikowi z możliwością uruchomienia kontenera z niestandardowym obrazem (np. członkowi grupy 'incus') wykorzystanie przechodzenia po katalogach lub dowiązań symbolicznych w funkcji szablonów do odczytu i zapisu dowolnych plików na hoście, co prowadzi do wykonania dowolnych komend na hoście. Poprawka planowana jest w wersjach 6.0.6 i 6.21.0.
- CVE-2026-23953Wysokie
Incus w wersjach 6.20.0 i niższych umożliwia użytkownikowi z możliwością uruchomienia kontenera z niestandardową konfiguracją YAML (np. członkowi grupy 'incus') utworzenie zmiennej środowiskowej zawierającej znaki nowej linii, co może być wykorzystane do dodania dodatkowych elementów konfiguracji w lxc.conf kontenera. Może to pozwolić na dodanie dowolnych haków cyklu życia, prowadząc do wykonania dowolnych komend na hoście. Poprawka planowana jest w wersjach 6.0.6 i 6.21.0.
- CVE-2026-63343Krytyczne
Incus przed wersją 7.3.0 zawiera podatność, w której złośliwy obraz zawierający dowiązanie symboliczne `metadata.yaml` wskazujące na dowolną ścieżkę hosta pozwala uwierzytelnionemu użytkownikowi Incus na odczyt lub nadpisanie dowolnego pliku na hoście jako root przez API metadanych instancji. Ścieżki `exec-output` i `templates/` zostały załatane wcześniej, ale `metadata.yaml` nie został objęty poprawką i pozostaje podatny.
- CVE-2026-63125Krytyczne
Incus przed wersją 7.3.0 pozwala nieuprzywilejowanemu użytkownikowi ograniczonemu do projektu (niebędącemu administratorem TLS/RBAC z uprawnieniami `can_create_images` i `can_create_instances`) na wykonanie dowolnego kodu jako root na hoście. Złośliwy obraz zawiera `backup.yaml` jako dowiązanie symboliczne do pliku hosta. Gdy root daemon zapisuje plik kopii zapasowej instancji, podąża za dowiązaniem symbolicznym.
- CVE-2026-62941Krytyczne
Incus przed wersją 7.3.0 ma podatność, w której podczas kopiowania instancji między projektami sprawdzenie ograniczeń projektu (`AllowInstanceCreation`) jest wykonywane PRZED scaleniem konfiguracji źródłowej instancji z żądaniem. Niebezpieczne klucze konfiguracji (takie jak `security.privileged`, `raw.lxc`, `raw.apparmor`) ze źródłowej instancji są scalane PO przejściu kontroli, omijając wszystkie ograniczenia projektu w projekcie docelowym.
- CVE-2026-62940Krytyczne
Incus przed wersją 7.3.0 ma podatność, w której podczas migracji instancji do innego członka klastra, nadpisania konfiguracji dostarczone przez użytkownika (w tym klucze krytyczne dla bezpieczeństwa, takie jak `security.privileged` i `raw.lxc`) są stosowane bez egzekwowania jakichkolwiek ograniczeń projektu, co pozwala użytkownikowi z ograniczonego projektu na eskalację do uprzywilejowanego kontenera i ucieczkę do hosta.
- CVE-2026-62867Krytyczne
Incus przed wersją 7.3.0 ma podatność, w której nieprawidłowa walidacja dostarczonego przez użytkownika `block.create_options` w konfiguracji woluminu magazynu prowadzi do wstrzyknięcia argumentów w konstruowanej linii poleceń tworzenia systemu plików. Pozwala to użytkownikowi z ograniczeniem do projektu na wstrzyknięcie dowolnych argumentów do binarnego wykonywanego jako root.
Oryginalny opis (angielski, źródło NVD)
Incus is a system container and virtual machine manager. Prior to version 7.1.0, `(*backend).createDependentVolumesFromBackup` in `internal/server/storage/backend.go` contains a cluster of unguarded pointer derefs on every dependent-volume entry's `VolumeSnapshots[i]`, `Volume`, and `Pool` sub-fields. An authenticated user with `can_create_instances` permission on any project can crash the `incusd` daemon by uploading an instance backup tarball whose `dependent_volumes[*]` block contains a nil snapshot pointer (or omits `volume:` / `pool:`). This is a sibling-field variant of the 2026-05-04 batch fix `d768f81c0a1d985f35ae56219519822b080bf5e3` ("Properly check dependent volumes on import"). That commit added `if disk == nil` at the top of the outer loop, but did not guard the four sub-pointer fields the loop body dereferences naked. Version 7.1.0 contains an updated patch.

