Podatność w TorchServe pozwala atakującemu ominąć mechanizm kontroli dozwolonych adresów URL (allowed_urls) poprzez użycie znaków takich jak ".." w adresie URL. Jest to groźne, ponieważ umożliwia pobranie i załadowanie nieautoryzowanych modeli do środowiska produkcyjnego bez żadnych uprawnień.
▸ Pokaż oryginał (EN)
TorchServe is a flexible and easy-to-use tool for serving and scaling PyTorch models in production. TorchServe 's check on allowed_urls configuration can be by-passed if the URL contains characters such as ".." but it does not prevent the model from being downloaded into the model store. Once a file is downloaded, it can be referenced without providing a URL the second time, which effectively bypasses the allowed_urls security check. Customers using PyTorch inference Deep Learning Containers (DLC) through Amazon SageMaker and EKS are not affected. This issue in TorchServe has been fixed by validating the URL without characters such as ".." before downloading see PR #3082. TorchServe release 0.11.0 includes the fix to address this vulnerability. Users are advised to upgrade. There are no known workarounds for this vulnerability.
TorchServe weryfikuje, czy podany URL należy do listy allowed_urls, jednak nie blokuje adresów zawierających znaki path traversal, takie jak "..". Atakujący może przesłać spreparowany URL z takimi znakami, co pozwala pobrać plik do magazynu modeli (model store) z pominięciem weryfikacji. Po pobraniu pliku można się do niego odwołać ponownie bez podawania pełnego URL-a, co skutecznie omija mechanizm bezpieczeństwa przy kolejnych odwołaniach. Błąd sklasyfikowany jest jako CWE-706, czyli użycie niepoprawnie rozwiązanej nazwy lub referencji.
Atakujący bez żadnego uwierzytelnienia może załadować dowolny, nieautoryzowany model do środowiska produkcyjnego, co może prowadzić do naruszenia poufności danych, integralności systemu oraz jego dostępności — w tym potencjalnie do wykonania złośliwego kodu w kontekście serwera wnioskowania.
Należy zaktualizować TorchServe do wersji 0.11.0 lub nowszej, która zawiera poprawkę walidującą URL pod kątem niedozwolonych znaków (m.in. "..") przed pobraniem pliku (PR #3082). Brak znanych obejść — aktualizacja jest jedynym zalecanym środkiem zaradczym.
PyTorch TorchServe we wszystkich wersjach poprzedzających 0.11.0. Użytkownicy korzystający z PyTorch inference Deep Learning Containers (DLC) przez Amazon SageMaker i EKS nie są podatni.
Poprawka została wprowadzona w pull requeście #3082 w repozytorium pytorch/serve. Użytkownicy środowisk Amazon SageMaker i EKS korzystający z DLC są wyłączeni z grupy podatnych.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HPytorch Torchserve
APPPytorch0.4.2 – 0.11.0 (bez)
Powiązane podatności
TorchServe is a tool for serving and scaling PyTorch models in production. TorchServe default configuration la...
TorchServe is a flexible and easy-to-use tool for serving and scaling PyTorch models in production. In affecte...
TorchServe is a tool for serving and scaling PyTorch models in production. Starting in version 0.1.0 and prior...