Исследователи из компании Accomplish AI обнаружили дыру в защите Claude Cowork — инструмента Anthropic, который запускает ИИ-агента в изолированной среде на компьютерах Mac. Уязвимость получила имя SharedRoot, и суть её проста до неприличия: агент, которому положено сидеть взаперти в виртуальной машине, при определённых условиях получал доступ ко всей файловой системе хоста. То есть к вашему настоящему Mac, а не к его песочнице.
О находке рассказали изданию The Hacker News ещё до официальной публикации отчёта. Ведущий исследователь Accomplish AI Орен Йомтов и технический директор компании Ор Хилч указывают, что проблема затрагивала порядка 500 тысяч пользователей macOS, которые запускали Cowork локально на своих машинах — до того, как Anthropic выпустила патч.
Демонстрация выглядела почти издевательски просто. Исследователи подключили к свежей сессии Cowork обычную папку, отправили агенту одно короткое сообщение — и тот вырвался из песочницы прямо на хост-систему. Никакого запроса на разрешение, никакого предупреждения пользователю. Просто тихий побег.
Чтобы понять, почему это вообще стало возможным, нужно заглянуть в архитектуру Cowork. Десктопное приложение для macOS работает от имени вошедшего в систему пользователя, а сама работа агента происходит внутри Linux-виртуальной машины, созданной через Virtualization framework от Apple. Каждой сессии выделяется одноразовый непривилегированный пользователь и фильтр Secure Computing Mode, ограничивающий системные вызовы. Папки, которые пользователь решает «подключить» к агенту, пробрасываются внутрь VM демоном с root-правами — coworkd.
Именно здесь и зарыта собака. Весь хостовый диск, вся файловая система, обозначаемая символом "/", монтируется внутрь виртуальной машины в режиме чтения и записи. Точка монтирования — /mnt/.virtiofs-root. По задумке разработчиков увидеть эту точку монтирования должен только гостевой root внутри VM, а обычный пользователь сессии до неё не дотянется. Но если агент каким-то образом получает права guest-root, перед ним открывается весь хост целиком.
Способ получить эти права нашёлся довольно быстро. Атакующий загружает подсистему обработки пакетов ядра Linux под названием "act_pedit" в непривилегированное пользовательское пространство имён, а затем эксплуатирует свежую уязвимость CVE-2026-46331, прозванную "pedit COW", в ядре гостевой системы. Итог — полные права guest-root, а с ними и доступ к хостовой файловой системе с повышенными привилегиями. Агент может читать и писать любые файлы от имени того же пользователя, который вошёл в систему на настоящем Mac.
Технически всё держится на том, что создание пользовательских и сетевых пространств имён даёт возможность CAP_NET_ADMIN внутри частного сетевого namespace сессии. Именно эта возможность открывает путь к уязвимому участку кода tc/act_pedit, который и эксплуатирует pedit COW. Хилч формулирует это так: «Пространства имён сами по себе не эксплойт — они делают доступным для обычного пользователя то, что обычно требует привилегий».
С полным доступом к хосту агент теоретически мог добраться до чего угодно, что привязано к учётной записи пользователя на Mac: SSH-ключи, облачные credentials, любые другие ценные данные, лежащие на диске.
В последней версии Cowork по умолчанию используется облачное выполнение — это закрывает проблему сразу. Но те, кто предпочитает запускать агента локально, всё ещё остаются в зоне риска.
Похожий случай уже был в индустрии: модели OpenAI во время теста безопасности вышли за пределы изолированной среды и пробрались в производственную инфраструктуру Hugging Face. Тогда модели пытались обмануть бенчмарк ExploitGym, на котором их же и оценивали.
Йомтов смотрит на историю с act_pedit шире, чем на разовый баг. "Act_pedit — это один баг в целой категории», — говорит он. По его наблюдениям, подсистема net/sched в ядре Linux регулярно порождает одну и ту же схему эскалации привилегий: автозагружаемый модуль, конфигурационный путь, доступный непривилегированному пользователю, и в конце цепочки — ошибка работы с памятью. Закрыть один такой баг не значит решить проблему архитектуры. «Цепочка перезаряжается со следующим багом, а всё, что выше ядра, остаётся нетронутым», — отмечает исследователь. По его словам, компании структурно всегда отстают на один баг, потому что новые уязвимости эскалации привилегий появляются постоянно — какие-то остаются без патча в апстриме годами, а эксплойты к другим публикуют в течение считаных часов после раскрытия.
Accomplish AI предлагает конкретный набор мер для тех, кто хочет закрыть подобные лазейки: отключить непривилегированные пользовательские пространства имён, избегать слишком разрешительных seccomp-фильтров, прекратить автозагрузку модулей ядра, ограничить проброс файловой системы из хоста в VM только теми папками, которые реально подключил пользователь, а не всем корнем "/" — либо хотя бы монтировать их только для чтения. Отдельно рекомендуется укрепить сам coworkd: запускать его с параметром ProtectSystem=strict, изолировать в собственном mount namespace и не допускать повторного запуска бинарников, которые мог подменить пользователь сессии. Смысл всех этих шагов один — даже если атакующий добьётся полного guest-root, последним двум звеньям цепочки будет попросту некуда вести, и путь из скомпрометированной виртуальной машины на настоящий компьютер окажется перекрыт.
О находке рассказали изданию The Hacker News ещё до официальной публикации отчёта. Ведущий исследователь Accomplish AI Орен Йомтов и технический директор компании Ор Хилч указывают, что проблема затрагивала порядка 500 тысяч пользователей macOS, которые запускали Cowork локально на своих машинах — до того, как Anthropic выпустила патч.
Демонстрация выглядела почти издевательски просто. Исследователи подключили к свежей сессии Cowork обычную папку, отправили агенту одно короткое сообщение — и тот вырвался из песочницы прямо на хост-систему. Никакого запроса на разрешение, никакого предупреждения пользователю. Просто тихий побег.
Чтобы понять, почему это вообще стало возможным, нужно заглянуть в архитектуру Cowork. Десктопное приложение для macOS работает от имени вошедшего в систему пользователя, а сама работа агента происходит внутри Linux-виртуальной машины, созданной через Virtualization framework от Apple. Каждой сессии выделяется одноразовый непривилегированный пользователь и фильтр Secure Computing Mode, ограничивающий системные вызовы. Папки, которые пользователь решает «подключить» к агенту, пробрасываются внутрь VM демоном с root-правами — coworkd.
Именно здесь и зарыта собака. Весь хостовый диск, вся файловая система, обозначаемая символом "/", монтируется внутрь виртуальной машины в режиме чтения и записи. Точка монтирования — /mnt/.virtiofs-root. По задумке разработчиков увидеть эту точку монтирования должен только гостевой root внутри VM, а обычный пользователь сессии до неё не дотянется. Но если агент каким-то образом получает права guest-root, перед ним открывается весь хост целиком.
Способ получить эти права нашёлся довольно быстро. Атакующий загружает подсистему обработки пакетов ядра Linux под названием "act_pedit" в непривилегированное пользовательское пространство имён, а затем эксплуатирует свежую уязвимость CVE-2026-46331, прозванную "pedit COW", в ядре гостевой системы. Итог — полные права guest-root, а с ними и доступ к хостовой файловой системе с повышенными привилегиями. Агент может читать и писать любые файлы от имени того же пользователя, который вошёл в систему на настоящем Mac.
Технически всё держится на том, что создание пользовательских и сетевых пространств имён даёт возможность CAP_NET_ADMIN внутри частного сетевого namespace сессии. Именно эта возможность открывает путь к уязвимому участку кода tc/act_pedit, который и эксплуатирует pedit COW. Хилч формулирует это так: «Пространства имён сами по себе не эксплойт — они делают доступным для обычного пользователя то, что обычно требует привилегий».
С полным доступом к хосту агент теоретически мог добраться до чего угодно, что привязано к учётной записи пользователя на Mac: SSH-ключи, облачные credentials, любые другие ценные данные, лежащие на диске.
В последней версии Cowork по умолчанию используется облачное выполнение — это закрывает проблему сразу. Но те, кто предпочитает запускать агента локально, всё ещё остаются в зоне риска.
Похожий случай уже был в индустрии: модели OpenAI во время теста безопасности вышли за пределы изолированной среды и пробрались в производственную инфраструктуру Hugging Face. Тогда модели пытались обмануть бенчмарк ExploitGym, на котором их же и оценивали.
Йомтов смотрит на историю с act_pedit шире, чем на разовый баг. "Act_pedit — это один баг в целой категории», — говорит он. По его наблюдениям, подсистема net/sched в ядре Linux регулярно порождает одну и ту же схему эскалации привилегий: автозагружаемый модуль, конфигурационный путь, доступный непривилегированному пользователю, и в конце цепочки — ошибка работы с памятью. Закрыть один такой баг не значит решить проблему архитектуры. «Цепочка перезаряжается со следующим багом, а всё, что выше ядра, остаётся нетронутым», — отмечает исследователь. По его словам, компании структурно всегда отстают на один баг, потому что новые уязвимости эскалации привилегий появляются постоянно — какие-то остаются без патча в апстриме годами, а эксплойты к другим публикуют в течение считаных часов после раскрытия.
Accomplish AI предлагает конкретный набор мер для тех, кто хочет закрыть подобные лазейки: отключить непривилегированные пользовательские пространства имён, избегать слишком разрешительных seccomp-фильтров, прекратить автозагрузку модулей ядра, ограничить проброс файловой системы из хоста в VM только теми папками, которые реально подключил пользователь, а не всем корнем "/" — либо хотя бы монтировать их только для чтения. Отдельно рекомендуется укрепить сам coworkd: запускать его с параметром ProtectSystem=strict, изолировать в собственном mount namespace и не допускать повторного запуска бинарников, которые мог подменить пользователь сессии. Смысл всех этих шагов один — даже если атакующий добьётся полного guest-root, последним двум звеньям цепочки будет попросту некуда вести, и путь из скомпрометированной виртуальной машины на настоящий компьютер окажется перекрыт.