Два пропуска в Cursor, ИТ редактор с изкуствен интелект (AI), могат да позволят на една-единствена, на пръв поглед обикновена подкана да излезе от изолираната среда за сигурност (sandbox) на редактора и да изпълни всякаква команда на компютъра на разработчика. Няма бутон, който да бъде натиснат по погрешка, нито прозорец за одобрение, който да бъде пренебрегнат.
Cato AI Labs откриха двойката уязвимости и ги нарекоха DuneSlide. Те се проследяват като CVE-2026-50548 и CVE-2026-50549, като и двете са оценени с 9.8 от 10 (или 9.3 по новата скала CVSS 4.0).
Корекцията вече е налична. Двата проблема са отстранени в Cursor 3.0, пуснат на 2 април, а всяка версия преди 3.0 е засегната. Създателите на Cursor споделят, че повече от половината компании от Fortune 500 използват инструмента, така че ако го използвате, актуализирайте незабавно.
За какво е изолираната среда и как бе пробита
Започвайки от серията 2.x, Cursor по подразбиране изпълнява терминалните команди, генерирани от неговия AI агент, в изолирана среда (sandbox) – заключена кутия, която ограничава достъпа на тези команди, така че случайно разсеяна инструкция да не повреди машината.
DuneSlide има за цел именно излизането от тази кутия. Пътят за влизане е инжектиране на подкани (prompt injection). Нападателят никога не пише директно във вашия Cursor. Те вграждат инструкции в нещо, което вашият агент чете от ваше име, например свързана услуга чрез Model Context Protocol (MCP) или страница, върната от търсене в мрежата.
Вие задавате нормален въпрос, скритите инструкции се промъкват заедно с него и тъй като няма нужда от щракване или одобрение от ваша страна, атаката се дефинира като "zero-click" (без кликване).
И двата пропуска използват един и същ трик: карат агента да запише един файл, който не би трябвало да му е позволено да записва, и след това използват този запис, за да изключат изолираната среда.
CVE-2026-50548 злоупотребява с една настройка. Изолираната среда позволява записи в работната папка на командата, а тази папка е незадължителен параметър working_directory в инструмента run_terminal_cmd на Cursor. Когато агентът го настрои към път, различен от стандартния, Cursor добавя този път към списъка с разрешени за запис без въпроси. Инжектираните инструкции го насочват към системен файл вместо към проекта. Презаписването на помощния инструмент за изолираната среда (на macOS: /Applications/Cursor.app/Contents/Resources/app/resources/helpers/cursorsandbox) води до това, че следващите команди се изпълняват без никаква изолирана среда. Стартови файлове като ~/.zshrc също са подходящи цели.
CVE-2026-50549 злоупотребява с проверка за безопасност. Преди запис, Cursor разрешава непреките връзки (symlinks), за да потвърди, че крайната дестинация се намира в рамките на проекта ви. Бъгът е в алтернативния изходен сценарий: когато тази проверка се провали (защото целта не съществува или атакуващият е премахнал достъпа за четене от папка в пътя), Cursor се отказва и се доверява на пътя на непреката връзка вътре в проекта. Атакуващият създава непрека връзка, сочеща извън проекта, принуждава проверката да се провали и Cursor записва директно през нея в същия помощен инструмент на изолираната среда. Същото бягство, но през друга врата.
След като изолираната среда бъде неутрализирана, следващата команда се изпълнява с вашите потребителски права. Това означава контрол над машината на разработчика, плюс всички облачни или SaaS работни пространства, в които редакторът е вписан. Всичко това произлиза от една на пръв поглед безобидна подкана.
Няма признаци това да е използвано при реални атаки. Cato го представя като изследване, а не като активна кампания, и публичните регистри за уязвимости не показват известни експлоатации към момента на публикуване.
Cato докладва и двата проблема на 19 февруари. Според Cato, Cursor първоначално ги е отхвърлил четири дни по-късно с аргумента, че техният модел на заплахи не покрива злоупотреба с MCP сървъри. Cato ескалира случая на 26 февруари; тогава Cursor отвори отново докладите, анализира ги и внедри корекциите във версия 3.0. Номерата на CVE уязвимостите бяха разпределени на 6 юни. Cursor публикува собствен бюлетин за сигурност за проблема със симлинковете.
Не е първият и вероятно няма да е последният случай
DuneSlide е поредният от поредица бъгове в Cursor, които започват с отровена подкана и завършват с изпълнение на код, преодолявайки различни предпазни огради. Някои от предишните инциденти включват:
- CurXecute (CVE-2025-54135, август 2025 г.) дойде от същия екип, тогава работещ като Aim Security. Засадено съобщение в Slack пренаписа конфигурацията
~/.cursor/mcp.jsonна Cursor и изпълни команди дори след като потребителят отказа редакцията. Коригирано във версия 1.3. - MCPoison (CVE-2025-54136), от Check Point Research, позволява на нападател да получи одобрение за MCP конфигурация веднъж, а след това тихомълком да я замени със зловредни команди без повторно подканване.
- CVE-2026-26268 (февруари 2026 г.) скри капан в Git hook в хранилище, който се задейства в момента, в който агентът изпълни Git команда. Коригирано в 2.5.
Изолираната среда в линията 2.x беше отговорът на Cursor на тази предишна вълна. DuneSlide е свързан с избягването на този отговор. Cato твърди, че разкрива подобни недостатъци и в други кодиращи агенти и споделя, че проблемът е структурен, а не поредица от единични случаи.
Това оставя отворен въпроса пред всеки разработчик на AI агенти, които четат отворената мрежа: дали третирането на всеки вход като враждебен ще стане стандарт по подразбиране, или ще остане борба чрез кръпки парче по парче.