TorchServe w wersjach od 0.1.0 do 0.8.1 nie waliduje poprawnie danych wejściowych, co pozwala osobom trzecim na wywołanie zdalnych żądań HTTP i zapis plików na dysku serwera. Podatność uzyskała najwyższy możliwy wynik CVSS 10.0 i może prowadzić do naruszenia integralności systemu oraz wycieku wrażliwych danych.
▸ Pokaż oryginał (EN)
TorchServe is a tool for serving and scaling PyTorch models in production. TorchServe default configuration lacks proper input validation, enabling third parties to invoke remote HTTP download requests and write files to the disk. This issue could be taken advantage of to compromise the integrity of the system and sensitive data. This issue is present in versions 0.1.0 to 0.8.1. A user is able to load the model of their choice from any URL that they would like to use. The user of TorchServe is responsible for configuring both the allowed_urls and specifying the model URL to be used. A pull request to warn the user when the default value for allowed_urls is used has been merged in PR #2534. TorchServe release 0.8.2 includes this change. Users are advised to upgrade. There are no known workarounds for this issue.
Domyślna konfiguracja TorchServe nie ogranicza prawidłowo listy dozwolonych adresów URL (parametr allowed_urls), umożliwiając atakującemu wskazanie dowolnego zewnętrznego adresu jako źródła modelu. Serwer pobiera wtedy zasób spod wskazanego URL i zapisuje go lokalnie na dysku — bez uprzedniego uwierzytelnienia czy ograniczeń sieciowych po stronie klienta. Jest to klasyczny scenariusz ataku SSRF (Server-Side Request Forgery), w którym napastnik wykorzystuje serwer jako pośrednika do wysyłania żądań HTTP.
Atakujący może skompromitować integralność systemu poprzez zapis dowolnych plików na dysku serwera oraz uzyskać dostęp do wrażliwych danych. W połączeniu z mechanizmem deserializacji modeli, exploit może prowadzić do zdalnego wykonania kodu (RCE).
Należy zaktualizować TorchServe do wersji 0.8.2, która zawiera zmianę ostrzegającą użytkownika o stosowaniu domyślnej wartości parametru allowed_urls. Użytkownicy powinni ponadto jawnie skonfigurować parametr allowed_urls, ograniczając dostępne źródła modeli wyłącznie do zaufanych adresów URL. Producent nie wskazuje żadnych obejść dla starszych wersji.
PyTorch TorchServe w wersjach od 0.1.0 do 0.8.1 włącznie.
W referencjach wymieniony jest publiczny exploit opublikowany w serwisie Packet Storm Security (plik 175095), dotyczący deserializacji podczas rejestracji modelu i prowadzący do RCE. Podatność opisana w GitHub Security Advisory GHSA-8fxr-qfr9-p34w.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HPytorch Torchserve
APPPytorch0.1.0 – 0.8.2 (bez)
Powiązane podatności
TorchServe: Obejście filtra allowed_urls przez path traversal
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...