Прадэманстраваны метад нападу на рэдактар кода VSCode, які дазваляе перадаць адвольныя файлы ў рамках мае рацыю бягучага карыстача пры адкрыцці ў рэдактары адмыслова аформленага зыходнага кода. У прапанаванай дэманстрацыі пры адкрыцці кода на мове Rust, у якім выкарыстоўваецца працэдурны макрас, выконваецца ўстаноўка злучэння з хастом 127.0.0.1:8080 і адпраўка змесціва файла "~/.ssh/id_rsa" з SSH-ключамі карыстальніка.
Для кампраметацыі дастаткова проста адкрыць файл з кодам, без выканання якіх-небудзь іншых дзеянняў з праектам. Для працы прыкладу патрабуецца наяўнасць у VSCode плагіна rust-analyzer (абвязка над штатным кампілятарам rustc) і наяўнасць у сістэме інструментара для працы з кодам на мове Rust. Праблема звязана з раскрыццём працэдурных макрасаў падчас пачатковага аналізу кода. Аналагічнага эфекту таксама можна дабіцца падчас кампіляцыі з выкарыстаннем каманды «cargo build».
Адзначаецца, што праблема можа закранаць іншыя рэдактары кода і мовы праграмавання. VSCode і rust-analyze скарыстаны толькі для дэманстрацыі вектара нападу. Тэарэтычна праблеме схільны любы рэдактар кода, які расчыняе працэдурныя макрасы, якія дазваляюць ствараць пашырэнні сінтаксісу і выконваць код на этапе кампіляцыі. Першапачаткова даследнік вывучаў магчымасць здзяйснення шкоднасных дзеянняў падчас кампіляцыі кода, але выявіў, што працэдурныя макрасы расчыняюцца пры апрацоўцы зыходных тэкстаў у рэдактарах кода. Верагодна напад можа закранаць і іншыя мовы праграмавання, напрыклад, у Java падобнай выявай можна маніпуляваць з апрацоўкай анатацый.
Крыніца: opennet.ru