Katalog CVE

CVE-2026-77763

ŚrednieCVSS 6.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.33%

Percentyl 26 - wyżej niż 26% wszystkich znanych CVE

Streszczenie

Backend filestore w pkg/object/file.go, używany dla magazynów file:// i jako wspólny cel synchronizacji juicefs, wyprowadza każdą operację z path(key), która nie sprawdza, czy wynik pozostaje w katalogu głównym. Klucze obiektów z zewnętrznego magazynu mogą zawierać segmenty przejścia (np. ../), co pozwala na zapis plików poza zamierzonym katalogiem lokalnym bez zgłaszania błędu. Operator synchronizujący z nie w pełni kontrolowanego bucketa jest narażony na zapis plików w miejscach kontrolowanych przez atakującego.

Ocena ryzyka

Ryzyko zapisu złośliwych plików poza docelowym katalogiem, co może prowadzić do nadpisania krytycznych plików systemowych lub wstrzyknięcia złośliwego kodu.

Rekomendacja

Należy zaktualizować juicefs do wersji z poprawką, która odrzuca klucze wychodzące poza katalog główny, oraz unikać synchronizacji z niezaufanych źródeł.

Inne podatności w juicefs

Oryginalny opis (angielski, źródło NVD)

The filestore backend in pkg/object/file.go, used for file:// stores and as a common juicefs sync destination, derived every operation's target from path(key), which returned either filepath.Join(d.root, key) or filepath.Clean(d.root + key) with no check that the result stayed beneath the root. Put, Get, Head, Delete, Chmod, Chown, Symlink and Readlink all consumed that value directly. Object keys enumerated from a source object store during a sync are not constrained the way local filesystem names are, so a key containing traversal segments causes juicefs to write attacker-supplied content to a path outside the intended local destination, and no error is returned. An operator syncing from a bucket whose contents they do not fully control, such as a shared or public bucket or one an attacker can write to, is therefore exposed to a file write at an attacker-influenced location. The fix changes path() to return an error and rejects any key whose resolved path escapes the root.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS