Pokazana je metoda napada na uređivač koda VSCode, koji omogućuje prijenos proizvoljnih datoteka unutar prava trenutnog korisnika prilikom otvaranja posebno dizajniranog izvornog koda u uređivaču. U ovoj demonstraciji, prilikom otvaranja Rust koda koji koristi proceduralnu makronaredbu, uspostavlja vezu s hostom 127.0.0.1:8080 i šalje sadržaj datoteke "~/.ssh/id_rsa" s korisničkim SSH ključevima.
Za kompromis je dovoljno jednostavno otvoriti datoteku s kodom, bez izvođenja bilo kakvih drugih radnji s projektom. Da bi primjer radio, VSCode zahtijeva plugin rust-analyzer (vezivanje na vrhu standardnog rustc prevoditelja) i prisutnost alata u sustavu za rad s kodom u Rust jeziku. Problem je povezan s proširenjem proceduralnih makronaredbi tijekom početne analize koda. Sličan učinak može se postići i tijekom kompajliranja pomoću naredbe "cargo build".
Napominje se da problem može utjecati na druge uređivače koda i programske jezike. VSCode i rust-analyze koriste se samo za demonstraciju vektora napada. U teoriji, svaki uređivač koda koji izlaže proceduralne makronaredbe koje vam omogućuju stvaranje sintaktičkih proširenja i izvršavanje koda tijekom kompilacije osjetljiv je na problem. Istraživač je u početku istraživao mogućnost zlonamjernih radnji koje se događaju tijekom kompilacije koda, ali je otkrio da su proceduralne makronaredbe proširene kada je izvorni kod obrađen u uređivačima koda. Napad vjerojatno može utjecati na druge programske jezike; na primjer, u Javi se obradom komentara može manipulirati na sličan način.
Izvor: opennet.ru