Przejdź do treści
INDEKS ANALIZ BREACHROAD / NOTA TECHNICZNA

Ubuntu snap-confine (CVE-2026-8933): lokalny root

CVE-2026-8933 to wyścig w snap-confine, który daje lokalnemu użytkownikowi roota na domyślnych desktopach Ubuntu 24.04, 25.10 i 26.04. Jak łatać i dlaczego.

MATERIAŁ PUBLICZNY
AUTOR
/ CEO Breachroad · OSCP · PNPT
PUBLIKACJA
24 lipca 2026
CZAS CZYTANIA
7 min czytania
TEMAT
Podatności i CVE
Ubuntu snap-confine (CVE-2026-8933): lokalny root

Qualys ujawnił podatność CVE-2026-8933 w komponencie snap-confine, który buduje środowisko uruchomieniowe dla aplikacji Snap w Ubuntu. Błąd typu wyścig (race condition) pozwala nieuprzywilejowanemu użytkownikowi lokalnemu uzyskać roota na domyślnych instalacjach Ubuntu Desktop 24.04, 25.10 i 26.04. To druga w tym tygodniu poważna luka lokalnej eskalacji w ekosystemie Linuksa — obok RefluXFS w XFS.

Skąd wziął się błąd

Qualys wiąże podatność ze zmianą hartującą w snap-confine. Nowsze wydania Ubuntu przeniosły ten komponent z modelu set-uid-root na model uprawnień (set-capabilities), żeby ograniczyć zakres przywilejów. Paradoksalnie ta zmiana otworzyła wąskie okno w trakcie przygotowywania piaskownicy: katalogi i pliki tymczasowe w /tmp były początkowo własnością nieuprzywilejowanego użytkownika, zanim własność przechodziła na roota.

Ocena to CVSS 7.8 (wysoka). Sam mechanizm hartowania bywa źródłem nowych błędów — to przypomnienie, że każda zmiana modelu uprawnień wymaga równie starannych testów jak nowa funkcja.

Jak działa wykorzystanie

Exploit łączy dwa równoległe wyścigi:

  1. Montaż FUSE. Atakujący montuje system plików FUSE nad tymczasowym katalogiem roboczym tuż po jego utworzeniu. Dzięki temu obchodzi izolację przestrzeni nazw montowań, którą snap-confine zakłada dopiero później — katalog pozostaje dostępny spoza piaskownicy.
  2. Dowiązanie symboliczne. Atakujący tworzy symlink wskazujący na dowolny plik docelowy. Gdy snap-confine próbuje utworzyć plik w piaskownicy, wywołanie open() podąża za symlinkiem i zapisuje do wskazanego celu.

Zestawienie tych kroków pozwala m.in. podłożyć złośliwe reguły udev i w efekcie wykonać polecenia jako root. To klasyczny, ale skuteczny wzorzec: przewidywalne pliki tymczasowe + moment zmiany właściciela = okno na przejęcie.

Dlaczego to ważne mimo „tylko” lokalnego dostępu

Jak przy każdej lokalnej eskalacji, kluczowe pytanie brzmi: kto może uruchomić kod na tej maszynie? Na desktopie jednego użytkownika ryzyko jest niższe, ale w środowiskach współdzielonych, na maszynach z wieloma kontami, w laboratoriach czy na stacjach dostępnych fizycznie dla wielu osób — lokalny root to pełne przejęcie hosta. W połączeniu z podatną aplikacją dającą wstępny dostęp, taka luka domyka łańcuch ataku.

Co zrobić

  1. Wgraj aktualizacje bezpieczeństwa Ubuntu. Zaktualizuj snapd/snap-confine do wersji z poprawką przez standardowy kanał aktualizacji dystrybucji.
  2. Priorytetyzuj domyślne desktopy 24.04, 25.10 i 26.04. To one są wskazane jako podatne w konfiguracji domyślnej.
  3. Obejmij tym samym cyklem inne maszyny z Linuksem. Skoro w tym samym tygodniu pojawił się RefluXFS, potraktuj to jako jedną falę łatania jądra i komponentów uprzywilejowanych — proces zarządzania podatnościami, nie dwie osobne akcje.
  4. Ogranicz, kto uruchamia kod lokalnie. Na maszynach wielodostępnych zawężaj uprawnienia i rozważ dodatkowe warstwy izolacji.
  5. Zweryfikuj wykonanie. Po aktualizacji potwierdź wersję komponentu, zamiast zakładać, że polityka się zastosowała.

Najważniejszy wniosek

CVE-2026-8933 pokazuje dwie rzeczy: że nawet zmiany zwiększające bezpieczeństwo trzeba testować pod kątem nowych wyścigów, oraz że lokalna eskalacja pozostaje istotna wszędzie tam, gdzie kod uruchamia więcej niż jeden użytkownik. Załataj snap-confine, potraktuj to razem z innymi lipcowymi lukami Linuksa i zweryfikuj wynik. Jeśli chcesz uporządkować proces łatania na flocie Linuksa, odezwij się.


Źródła: Qualys — CVE-2026-8933, The Hacker News, Infosecurity Magazine.

UDOSTĘPNIJ / KOPIUJ