Kritična ranjivost u PyTorch-u koja omogućava napadačima daljinski izvršavanje malicioznog koda , čak i kada koriste zaštitne mjere za koje se ranije smatralo da ublažavaju takve rizike.
Ranjivost, identifikovana kao CVE-2025-32434, utiče na sve verzije PyTorcha do i uključujući 2.5.1 i zakrpljena je u nedavno objavljenoj verziji 2.6.0.
Pregled PyTorch ranjivosti
Sigurnosna greška, koju je otkrio istraživač Ji’an Zhou, uključuje PyTorch-ovu funkciju torch.load kada se koristi sa parametrom weights_only=True.
Ova posebna kombinacija je prethodno dokumentovana i široko preporučena kao siguran pristup za učitavanje modela iz nepouzdanih izvora.
“Pronašao sam ranjivost Remote Command Execution (RCE) u PyTorchu. Prilikom učitavanja modela koristeći torch.load sa weights_only=True, još uvijek može postići RCE”, naveo je Zhou u službenom izvještaju o ranjivosti .
Ranjivost je u suprotnosti s prethodnim PyTorch-ovim sigurnosnim smjernicama, koje su eksplicitno navele u njihovoj službenoj dokumentaciji: “koristi Python-ove mogućnosti depicklinga, ali posebno tretira skladište koja su u osnovi tenzora” i preporučuje korištenje weights_only=True kao sigurnosne mjere.
Tipičan ranjivi isječak koda može izgledati ovako:
Faktori rizika | Detalji |
Pogođeni proizvodi | PyTorch (verzije ≤2.5.1), posebno kada koristite torch.load sa weights_only=True |
Uticaj | Remote Code Execution (RCE) putem deserializacije nepouzdanih podataka |
Preduvjeti za eksploataciju | Napadač mora dostaviti datoteku zlonamjernog modela koju učitava torch.load(weights_only=True); nema interakcije korisnika. |
CVSS 3.1 Score | 9.3 (kritično) |
Ovo otkriće je posebno zabrinjavajuće jer su mnoge organizacije i programeri implementirali parametar weights_only=True posebno kao sigurnosnu mjeru predostrožnosti.
PyTorch dokumentacija upozorava korisnike na opasnosti korištenja torch.load bez ovog parametra od verzije 2.4.
“Podrazumevano, torch.load koristi weights_only=False koji koristi modul pickle koji obezbeđuje Python . Ovo je inherentno nesigurno jer modul pickle može uvesti i izvršiti proizvoljan kod”, navodi se u službenoj dokumentaciji PyTorcha.
Ranjivost omogućava napadačima da naprave maliciozne datoteke modela koje, kada se učitaju, mogu izvršiti proizvoljan kod na sistemu žrtve, što potencijalno dovodi do potpunog kompromitovanja sistema.
Ovo je posebno opasno za cjevovode strojnog učenja koji automatski preuzimaju i učitavaju modele iz vanjskih izvora ili kolaborativnih okruženja.
Koraci ublažavanja
Korisnicima se preporučuje da odmah ažuriraju na PyTorch verziju 2.6.0 ili noviju. Ako trenutno ažuriranje nije moguće, izbjegavajte korištenje funkcije torch.load sa weights_only=True kao privremenu mjeru za smanjenje rizika.
Alternativna ublažavanja uključuju:
- Korištenje sigurnijih alternativa poput safetensors.torch.load_model.
- Implementacija dodatne validacije prije učitavanja bilo kojeg modela.
- Učitavanje samo modela iz pouzdanih, provjerenih izvora.
PyTorch tim je planirao napraviti weights_only=True kao zadanu postavku u verziji 2.6.0 čak i prije nego što je ova ranjivost otkrivena, kao dio tekućih sigurnosnih poboljšanja.
Incident služi kao podsjetnik da čak i sigurnosne značajke mogu imati neočekivane ranjivosti, a održavanje ažuriranih ovisnosti i dalje je ključno za organizacije koje rade s modelima strojnog učenja , posebno one u proizvodnim okruženjima ili obrađuju osjetljive podatke.
Izvor: CyberSecurityNews