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-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.
- CVE-2026-48769Krytyczne
Incus przed wersją 7.2.0 ma podatność polegającą na dowolnym zapisie pliku w kliencie Incus, gdy złośliwy serwer obrazów zwraca spreparowany nagłówek `Incus-Image-Hash`. Może to prowadzić do wykonania dowolnych poleceń jako root na serwerze.
- CVE-2026-48755Krytyczne
Incus przed wersją 7.1.0 ma podatność, w której nieprawidłowa walidacja dostarczonego przez użytkownika algorytmu kompresji kopii zapasowej prowadzi do wstrzyknięcia argumentów w konstruowanej linii poleceń. Prowadzi to do dowolnego zapisu pliku na hoście, co może prowadzić do wykonania dowolnych poleceń.
- CVE-2026-48753Krytyczne
Incus przed wersją 7.1.0 zawiera podatność na przechodzenie po ścieżkach w punkcie końcowym przesyłania danych protokołu S3, co pozwala na tworzenie dowolnych plików na hoście. Może to prowadzić do wykonania dowolnych poleceń. Wersja 7.1.0 naprawia ten problem.
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

