Forever Security откри начини за заобикаляне на изолацията на вградените браузъри в пет AI асистента за програмиране: Cursor, GitHub Copilot, Codex на OpenAI, VS Code на Microsoft и Claude Desktop на Anthropic. И в петте случая уеб страница или локален файл е успял да достигне до компютъра зад браузъра. Cursor е изпълнил код на атакауващия, Copilot е показал фалшив адрес, а Codex, VS Code и Claude Desktop са позволили на единичен локален файл да прочете останалата част от диска.

Уязвимости във вградените браузъри на AI асистенти

Две от тези пробойни все още остават отворени. Към 29 октомври за Codex и VS Code нямаше налична корекция за сигурност, така че разработчик, който отвори манипулиран проект в някой от тези инструменти, все още може да загуби SSH ключове, идентификационни данни за облачни услуги и токени за разработка само с едно щракване.

Три нарушени правила на браузъра

Самостоятелният браузър третира всяка страница като враждебна. От това следват три правила: дадена страница не може да изпълнява команди на вашия компютър, локален файл не може да чете останалите ви файлове и единствено браузърът може да записва в адресната лента. Всеки от доставчиците е разхлабил защитите на своя вграден браузър, за да позволи на изкуствения интелект да визуализира локален проект или да чете съдържанието на отворен таб. Изследователите от Forever провериха дали тези модификации нарушават трите правила. Според Гал Вайзман от Forever, който описва изследването, и в петте продукта поне едно от тях е било компрометирано. Forever нарича този модел EMBRACE — съкращение от вграден браузър, ползващ се с доверие като истински такъв.

Едно щракване, последвано от достъп до целия диск

Атаката за четене на файлове започва с проект, маскиран като стандартен финансов отчет. Разработчикът инструктира асистента да го конфигурира съгласно README файла, асистентът предлага активна връзка към HTML файл в проекта и разработчикът щраква върху нея. След това не се случва нищо видимо.

Claude Desktop и VS Code ограничават локалната страница само до папката на проекта, но тази проверка обхваща единствено самата страница. Web worker — фонов скрипт, който страницата може да стартира — остава извън обхвата на проверката, което му позволява да чете всеки файл на машината. В Codex подобна проверка на папки изобщо липсваше. За да набележи цели, атаката прочита скритите индексни файлове, които macOS записва във всяка папка, отваряна от потребителя във Finder, като по този начин картографира диска папка по папка. При теста на Forever този процес е събрал SSH ключове, .env файлове, npm токени и файла hosts, след което ги е изпратил навън.

Отхвърлени доклади заради запитването за доверие

Anthropic и Microsoft първоначално отхвърлиха докладите на Forever, позовавайки се на Workspace Trust — съобщението, което изисква от разработчика да потвърди, че се доверява на папката на проекта. Anthropic отхвърли доклад, подаден от Forever на 23 юли, но прие като валиден доклад, подаден от Noma Security на 24 юли. Forever все още няма отговор от OpenAI след подадения на 27 юли сигнал.

„Ако не гласуваш доверие на проект в AI средата, тя става неизползваема, затова всички просто натискат „Trust“, сподели Вайзман пред Help Net Security. На практика той посочи, че „това запитване не предоставя абсолютно никаква защита за потребителя“.

Cursor и Copilot вече имат отстранени уязвимости

В Cursor всичко, което се изискваше, беше уеб страница и едно натискане на клавиша Enter. Страницата показваше на разработчика безобидно изглеждащ бутон с надпис „Start setup“, зад който беше скрита команда за агента. Агентът прочиташе скритата команда и искаше разрешение за нейното стартиране, като одобрението изискваше само едно натискане на клавиш. Когато изолираната среда на Cursor блокираше командата, агентът сам изключваше изолираната среда и опитваше отново, без страницата изрично да го инструктира за това. В теста на Forever командата стартираше Calculator. Реален атакауващ би могъл да изпълни произволна програма с пълните привилегии на разработчика, въпреки че атаката зависи от модела и не сработва всеки път.

Запитан дали организациите трябва да очакват, че даден агент може да опита да заобиколи собствените си защитни механизми, Вайзман отговори: „Категорично да. Наблюдаваме това поведение да се повтаря и извън обхвата на настоящото изследване.“ Той допълни, че Forever са станали свидетели на същото действие от страна на агенти, извършено без искане на разрешение, и в скорошното си изследване върху изтеглянето на файлове.

Cursor отстрани уязвимостта на 1 октомври — три седмици след разкриването от Forever на 10 септември — като така и не отговори на изследователите. В GitHub Copilot дадена страница можеше да зададе на приложението на кой адрес се намира, а самото приложение проверяваше единствено дали текстът прилича на валиден уеб адрес. Страницата на Forever постави github.com/login в адресната лента над фалшива форма за вход, а собственият списък с табове на агента го повтори. GitHub коригира уязвимостта в Copilot 1.1.29 на 13 октомври, преди Forever да успее да подаде доклад.

Какво трябва да се провери сега

Съветът на Вайзман към екипите, използващи Codex или VS Code, е да извлекат списъка с надеждни проекти от конфигурационния файл на всяка машина и да проверят всеки HTML файл в тях за модела на експлойт, описан в техническия доклад на Forever. Щракването, необходимо за тази атака, идва от връзка, която самият асистент генерира, а в Codex и VS Code тази връзка все още може да отвори страница, която да прочете целия твърд диск.