Steam ranjivost omogućava lokalnom korisniku da dobije SYSTEM privilegije na Windowsu
Javno objavljen BrokenPipe PoC pokazuje da lokalni korisnik sa standardnim Windows nalogom može preko Steam Client Service-a da eskalira privilegije do NT AUTHORITY\SYSTEM bez administratorske lozinke ili UAC potvrde.
Šta se desilo?
Objavljen je javni proof-of-concept pod nazivom BrokenPipe koji demonstrira ozbiljnu ranjivost u Steam Client Service-u na Windows sistemima.
Ranjivost omogućava lokalnom korisniku sa standardnim privilegijama da eskalira prava do nivoa NT AUTHORITY\SYSTEM, bez administratorske lozinke i bez prikazivanja UAC zahteva.
Za iskorišćavanje nije potrebna prijava na Steam nalog, ali napadač već mora imati mogućnost da pokrene kod na računaru kao običan korisnik. Zato bi ranjivost mogla da posluži kao naredna faza napada posle početnog kompromitovanja. Objavljeni PoC sam po sebi nije potvrda eksploatacije u stvarnim napadima.
Koga pogađa?
Autor PoC-a navodi uspešno testiranje na Steam verziji 10.96.30.42 na 64-bitnim izdanjima Windows 10 i Windows 11.
Poseban rizik postoji na deljenim računarima, računarima u poslovnim okruženjima i drugim sistemima na kojima Steam nije poslovno potreban, ali je njegov servis instaliran i pokrenut sa SYSTEM privilegijama.
Ranjivost sama po sebi ne omogućava udaljeni pristup računaru. Napadač prvo mora imati lokalni nalog ili prethodno stečenu mogućnost izvršavanja koda sa privilegijama običnog korisnika.
Kako se zaštititi?
- Uklonite Steam sa poslovnih računara na kojima nije potreban.
- Identifikujte Windows uređaje u organizaciji na kojima je instaliran Steam Client Service.
- Pratite neuobičajene procese koje pokreće steamservice.exe sa SYSTEM privilegijama.
- Obratite pažnju na izvršavanje programa sa SYSTEM pravima iz direktorijuma u koje obični korisnici mogu da upisuju fajlove.
- Koristite application control i EDR pravila kako biste ograničili neodobreno izvršavanje koda.
- Pratite zvanična Valve obaveštenja i primenite ispravku čim bude dostupna.
Tehnički detalji
Steam Client Service, steamservice.exe, radi sa SYSTEM privilegijama i koristi se za operacije koje zahtevaju povišena prava.
BrokenPipe koristi nedoslednost u načinu na koji servis obrađuje Valve-potpisane VDF instalacione skripte. Digitalni potpis štiti sadržaj VDF fajla, ali ne obuhvata instalacionu putanju koju prosleđuje korisnik.
PoC preko Steam IPC interfejsa koristi funkcije IClientInstallUtils::AddInstallScriptToWhiteList i IClientInstallUtils::RunInstallScript sa legitimnim Valve-potpisanim VDF fajlom, ali instalacionu putanju usmerava na lokaciju pod kontrolom napadača.
Steam Client Service zatim pokreće izabrani izvršni fajl sa sopstvenim SYSTEM privilegijama. Demonstracioni PoC na ovaj način pokreće Windows Command Prompt kao NT AUTHORITY\SYSTEM.
Važno je da BrokenPipe ne falsifikuje niti menja Valve digitalni potpis. Problem je u tome što instalaciona putanja nije obuhvaćena verifikacijom potpisa.
Zašto je važno?
Steam je prvenstveno namenjen privatnoj upotrebi, ali se može pronaći i na poslovnim ili deljenim računarima. Na takvim sistemima dodatni privilegovani servis predstavlja nepotrebnu površinu za napad ako aplikacija nije potrebna za poslovni rad.
Lokalne ranjivosti za eskalaciju privilegija posebno su korisne napadačima nakon phishing napada, infekcije malverom ili kompromitovanja običnog korisničkog naloga, jer im omogućavaju prelazak sa ograničenih privilegija na potpunu kontrolu nad Windows sistemom.
Preporuka Sajber Radara
Ako Steam nije potreban na poslovnom računaru, uklonite ga. Organizacije bi trebalo da identifikuju uređaje na kojima je Steam instaliran i prate neuobičajene procese koje steamservice.exe pokreće sa SYSTEM privilegijama.
U pregledanim izvorima zakrpa za BrokenPipe nije potvrđena. Zato ograničavanje nepotrebnog softvera i kontrola lokalnog izvršavanja predstavljaju najpraktičnije mere za smanjenje rizika.