Demonstreeriti rünnakumeetod VSCode koodi toimetajale, mis võimaldab edastada mis tahes faile vastavalt käimasoleva kasutaja õigustele, kui avatakse spetsiaalselt vormindatud lähtekood. Eesmärgidonkude lõppkasutaja SSH-võtmed, avades Rusti keeles kirjutatud koodi, luuakse ühendus hostiga 127.0.0.1:8080 ning edastatakse faili "~/.ssh/id_rsa" sisu.
Kompromiteerimiseks piisab lihtsalt koodifaili avamisest, ilma et oleks vaja teha muid toiminguid projektiga. Näidise tööks on vajalik, et VSCode's oleks paigaldatud plugina rust-analyzer (vahekiht ametliku rustc kompilaatori kohal) ja et süsteemis oleks olemas Rusti koodi tööriistade komplekt. Probleem on seotud proceduuride makrode paljastamisega koodi esialgse analüüsi käigus. Sarnase efekti võib saavutada ka kompileerimise ajal, kasutades käsku "cargo build".
Tõdetakse, et probleem võib mõjutada ka teisi koodiredaktoreid ja programmeerimiskeeli. VSCode ja rust-analyze on kasutatud vaid rünnaku suuna demonstreerimiseks. Teoreetiliselt on probleem haavatav iga koodiredaktori puhul, mis avab protseduurimakrode võimalusi, mis võimaldavad süntaksi laiendusi ja koodi käitamist kompileerimise etapis. Alguses uuris uurija võimalust kuritegelike toimingute tegemiseks koodi kompileerimise ajal, kuid avastas, et protseduurimakrod avanevad koodiredaktorites lähtekoodi töötlemise käigus. Tõenäoliselt võib rünnak puudutada ka muid programmeerimiskeeli, näiteks Java puhul saab sarnase viisi kaudu manipuleerida annotatsioonide töötlemisega.

Allikas: opennet.ru
