CVE-2026-75602
ŚrednieCVSS 6.5Streszczenie
OpenList przed wersją 4.2.3 zawiera podatność w funkcji pobierania offline, która pozwala nieuprzywilejowanemu użytkownikowi na zapis plików poza katalogiem tymczasowym, co może prowadzić do tworzenia, nadpisywania lub modyfikacji dowolnych plików zapisywalnych przez proces OpenList. Podatność wynika z braku kontroli zawartości ścieżki w nazwie pliku pochodzącej z nagłówka Content-Disposition.
Ocena ryzyka
Ryzyko obejmuje możliwość naruszenia integralności systemu, nieautoryzowaną modyfikację plików, a w skrajnych przypadkach przejęcie kontroli nad procesem OpenList, co może prowadzić do poważnych kompromitacji.
Rekomendacja
Zaleca się natychmiastową aktualizację OpenList do wersji 4.2.3 lub nowszej, która zawiera poprawkę tej podatności.
Inne podatności w OpenList
Zobacz wszystkie- CVE-2026-73509Wysokie
OpenList, program do listowania plików obsługujący wiele magazynów, przed wersją 4.2.4, w uwierzytelnionym handlerze /api/fs/batch_rename w server/handles/fsbatch.go autoryzuje tylko katalog źródłowy utworzony przez user.JoinPath(req.SrcDir) i waliduje renameObject.NewName za pomocą checkRelativePath, ale nie waliduje kontrolowanego przez atakującego renameObject.SrcName, dostarczanego jako src_name, przed połączeniem go z autoryzowaną ścieżką i przekazaniem wyniku do fs.Rename. Użytkownik z uprawnieniami do zmiany nazw może użyć segmentów traversal w src_name, aby normalizacja ścieżki wybrała plik poza autoryzowanym katalogiem i skonfigurowaną ścieżką bazową, co skutkuje utratą integralności plików między użytkownikami, ograniczonym wpływem na dostępność i ujawnieniem istnienia plików poprzez odpowiedzi sukcesu lub błędu. Problem naprawiono w wersji 4.2.4.
- CVE-2026-69160Średnie
OpenList, program do listowania plików obsługujący wiele magazynów, przed wersją 4.2.4 zawiera podatność polegającą na użyciu strings.HasPrefix(requested_path, user.BasePath) bez wymuszania separatora katalogów w funkcjach tworzenia i aktualizacji udostępnień. Uwierzytelniony użytkownik z uprawnieniem CanShare i BasePath takim jak /base może przesłać ścieżkę rodzeństwa, np. /base2/secret.txt, utworzyć udostępnienie dla pliku poza zakresem i użyć publicznych handlerów pobierania lub listowania do odczytu danych poza przydzielonym katalogiem. Problem naprawiono w wersji 4.2.4.
Oryginalny opis (angielski, źródło NVD)
OpenList a file list program that supports multiple storage. Prior to 4.2.3, OpenList's offline-download feature at POST /api/fs/add_offline_download with tool: "SimpleHttp" accepts an attacker-supplied URL and saves its bytes under a per-task temporary directory before transferring them to the user's destination storage. The temporary filename comes from the attacker-controlled Content-Disposition header, is passed from parseFilenameFromContentDisposition in internal/offline_download/http/util.go to filepath.Join(task.TempDir, filename) in SimpleHttp.Run in internal/offline_download/http/client.go, and is opened with os.Create without a containment check. Because filepath.Join cleans .. segments, a non-admin user with PermAddOfflineDownload on any path can traverse out of task.TempDir and create, truncate, or overwrite any file writable by the OpenList process whose parent directory already exists. The server/handles/offline_download.go AddOfflineDownload route uses normal user authentication rather than AuthAdmin, and local-storage destinations fall through tryPutUrl in internal/offline_download/tool/add.go to the vulnerable SimpleHttp.Run path. This issue is fixed in version 4.2.3.

