CVE-2026-73509
WysokieCVSS 7.6Streszczenie
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.
Ocena ryzyka
Ryzyko naruszenia integralności plików innych użytkowników, ograniczonej dostępności oraz ujawnienia istnienia plików, co może prowadzić do wycieku informacji.
Rekomendacja
Zaktualizuj OpenList do wersji 4.2.4 lub nowszej, która zawiera poprawkę walidacji src_name.
Oryginalny opis (angielski, źródło NVD)
OpenList a file list program that supports multiple storage. Prior to 4.2.4, the authenticated /api/fs/batch_rename handler in server/handles/fsbatch.go authorizes only the source directory produced by user.JoinPath(req.SrcDir) and validates renameObject.NewName with checkRelativePath, but does not validate attacker-controlled renameObject.SrcName, supplied as src_name, before concatenating it with the authorized path and passing the result to fs.Rename. A user with rename permission can use traversal segments in src_name to make path normalization select a file outside the authorized directory and configured base path, resulting in cross-user file integrity loss, limited availability impact, and file-existence disclosure through success or error responses. This issue is fixed in version 4.2.4.

