Верига от уязвимости в продукта Claude Cowork на Anthropic позволява на атакуващ с възможност за локално изпълнение на код да ескалира привилегиите си и да изпълнява произволни команди като потребител root в рамките на изолирания Linux пясъчник (sandbox) на продукта, заобикаляйки всяко ниво на защита, изградено от Anthropic.
Claude Cowork е предназначен за офис служители, позволявайки на нетехнически потребители да използват Claude Code за създаване на инструменти и обработка на данни. В среда на Windows продуктът капсулира Claude Code в изолирана чрез Hyper-V виртуална машина с Ubuntu, защитена чрез RPC с именовани канали (named pipes), контролирани от Authenticode, пространства от имена на bubblewrap, непривилегировани потребители за всяка сесия, seccomp филтър и прокси за изходящ трафик с ограничен достъп до домейни.
Изследването на Armadin е имало за цел тихото изпълнение на произволен код във виртуалната машина като root с неограничен достъп до мрежата и е завършило с успех. Cowork под Windows конфигурира своя пясъчник чрез Host Compute Service, стартирайки виртуална машина с Ubuntu, която е невидима за стандартните инструменти на Hyper-V.
Услугата на локално системно ниво (Local System), наречена CoworkVMService, управлява връзките с десктопа чрез именован канал (\\.\pipe\cowork-vm-service), хостващ RPC сървър на базата на JSON. Услугата валидира връзките чрез проверки на Authenticode подписи, потвърждаващи, че субектът е подписан от "Anthropic, PBC".
Изследователите са използвали техниката DLL sideloading (MITRE ATT&CK T1574.002), откривайки, че claude.exe търси файла USERENV.dll първо в собствената си директория, преди да премине към системната версия. Чрез създаване на зловредна DLL библиотека със същото име и експортиране на функцията GetUserProfileDirectoryW, те са постигнали изпълнение на произволен код в легитимно подписан процес на Anthropic.
След това изследователите са декомпилирали и анализирали RPC протокола. Повечето защити на пясъчника са останали стабилни, но пробивът е дошъл от два параметъра на функцията spawn, препращани директно към демона на виртуалната машина (sdk-daemon): isResume и allowedDomains. Задаването на isResume: true изцяло заобикаля проверката за съществуващ потребител, позволявайки на демона да изпълнява команди като всеки посочен потребител, включително root, без валидация. Изпращането на {"name": "root", "isResume": true} връща root конзола в bubblewrap средата.
Armadin е потвърдила пълната верига на компрометиране срещу Claude Desktop за Windows версия 1.9255.2.0.