CVE-2026-120308
KrytyczneCVSS 9.9Streszczenie
W Beta9 dzierżawca może podpiąć wolumen podczas wdrażania funkcji, endpointu lub kolejki zadań. Gateway buduje ścieżkę hosta łącząc katalog główny wolumenów współdzielonych, nazwę workspace i identyfikator wolumenu ze stubu, bez weryfikacji, czy wolumen należy do danego workspace. Segmenty katalogu nadrzędnego w identyfikatorze pozwalają zredukować ścieżkę do katalogu głównego systemu plików workera, który jest montowany w sandboxie z prawem zapisu, umożliwiając odczyt i zapis plików workera, w tym wolumenów innych dzierżawców.
Ocena ryzyka
Dzierżawca z tokenem workspace może uzyskać dostęp do plików workera i wolumenów innych dzierżawców na tej samej maszynie, co prowadzi do naruszenia poufności i integralności danych. Podatność potwierdzono w gateway 0.1.769 i worker 0.1.745.
Rekomendacja
Zaktualizuj gateway do wersji 0.1.776 lub nowszej oraz workera do 0.1.756 lub nowszej, które walidują identyfikatory wolumenów i ścieżki montowania przed utworzeniem montowania.
Inne podatności w Beta9
Zobacz wszystkie- CVE-2026-120307Krytyczne
Worker Beta9 udostępnia API plików sandboxa spoza kontenera. Funkcja getHostPathFromContainerPath przekształca ścieżkę kontenera dzierżawcy na ścieżkę workera; jeśli nierozwiązana ścieżka zaczyna się od celu montowania (w tym domyślnego /tmp/.beta9), reszta jest dołączana do źródła montowania za pomocą filepath.Join, co czyści segmenty katalogu nadrzędnego po sprawdzeniu prefiksu. Odpowiednio długi ciąg takich segmentów wskazuje dowolną ścieżkę absolutną na workerze, a ścieżka niepasująca do żadnego montowania jest otwierana w systemie plików workera, podążając za dowiązaniami symbolicznymi. Dzierżawca z tokenem workspace i działającym sandboxem może czytać, zapisywać, listować i usuwać pliki na workerze jako root, w tym pliki innych dzierżawców.
- CVE-2026-120306Krytyczne
Beta9 zamienia każdą komendę powłoki w definicji obrazu dzierżawcy na linię RUN w Dockerfile i wykonuje ją za pomocą Buildah na workerze budowania. Obraz workera ustawia BUILDAH_ISOLATION=chroot, a żadne wywołanie buildah nie przekazuje --isolation, więc krok zmienia tylko katalog główny systemu plików, zachowując przestrzenie nazw PID, sieci, IPC i użytkownika workera, działając jako uid 0 z CAP_DAC_OVERRIDE. PID 1 w tym procfs to entrypoint workera, więc /proc/1/root to system plików kontenera workera i jest zapisywalny, zawierając binaria runc, buildah i runsc, token konta usługi Kubernetes oraz katalogi hosta zamontowane w podzie. Pody workera są uprzywilejowane, a warstwowe budowy Clip v2 są domyślne, więc dzierżawca z tokenem workspace może to osiągnąć, przesyłając jedną budowę obrazu.
Oryginalny opis (angielski, źródło NVD)
A Beta9 tenant can attach a volume when deploying a function, endpoint, or task queue. The gateway builds the host path by joining the shared volumes root, the workspace name, and the volume identifier from the stub configuration. Nothing checks that the identifier names a volume that workspace owns. Parent-directory segments in the identifier collapse the joined path to the worker's filesystem root, and the worker bind-mounts that path into the sandbox read-write unless the volume was explicitly marked read-only. A tenant with a workspace token can therefore read and write the worker's files, including other tenants' volumes stored on that machine. Confirmed against gateway 0.1.769 and worker 0.1.745. Fixed in gateway 0.1.776 and worker 0.1.756: volume identifiers and mount paths are validated before a mount is built, including for stubs saved before the check existed, and the gateway rejects a volume that does not exist or is not owned by the workspace.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

