CVE-2026-48756
NiskieCVSS 2.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
Incus to menedżer kontenerów systemowych i maszyn wirtualnych. Przed wersją 7.1.0, funkcja `(*backend).CreateCustomVolumeFromBackup` w `internal/server/storage/backend.go` zawiera niechronione wyłuskanie wskaźnika `*time.Time` na polu `ExpiresAt` każdego wpisu snapshotu wolumenu w importowanym backupie wolumenu niestandardowego. Uwierzytelniony użytkownik z uprawnieniem `can_create_storage_volumes` w dowolnym projekcie może doprowadzić do awarii demona `incusd` poprzez przesłanie archiwum backupu, w którym pole `volume_snapshots[*].expires_at` jest nieobecne. Jest to wariant siostrzanego pola GHSA-r7w7-mmxr-47r9 (CVE-2026-40197). Commit `985a1dedf9f3e7ba729c93b654905ed510de25c2` dodał `if s == nil` na początku pętli, ale nie zabezpieczył sąsiedniego wyłuskania `*snapshot.ExpiresAt` 19 linii dalej. Każdy inny konsument `Config.VolumeSnapshots[i].ExpiresAt` w tym samym pliku już zabezpiecza wyłuskanie sprawdzeniem nil — asymetryczne zabezpieczenie jest błędem. 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).CreateCustomVolumeFromBackup` in `internal/server/storage/backend.go` contains an unguarded `*time.Time` dereference on the `ExpiresAt` field of every volume-snapshot entry in an imported custom-volume backup. An authenticated user with `can_create_storage_volumes` permission on any project can crash the `incusd` daemon by uploading a backup tarball whose `volume_snapshots[*].expires_at` field is absent. This is a sibling-field variant of GHSA-r7w7-mmxr-47r9 (CVE-2026-40197). Commit `985a1dedf9f3e7ba729c93b654905ed510de25c2` added `if s == nil` at the top of the loop body, but did not guard the adjacent `*snapshot.ExpiresAt` deref 19 lines later. Every other consumer of `Config.VolumeSnapshots[i].ExpiresAt` in this same file already gates the deref with a nil-check — the asymmetric guard is the bug. Version 7.1.0 contains an updated patch.

