🔍 Contexte
Publié le 23 juillet 2026 par Oren Yomtov (Principal Security Researcher, Accomplish), cet article technique détaille une chaîne d’exploitation baptisée SharedRoot affectant Claude Cowork, l’environnement d’exécution d’agents IA d’Anthropic pour macOS. La vulnérabilité a été signalée à Anthropic, qui l’a classée « Informative ».
🧱 Architecture de l’environnement ciblé
Claude Cowork exécute les agents dans une VM Linux via le framework Apple Virtualization, avec :
- Un utilisateur de session non privilégié par session
- Un filtre seccomp
- Un daemon root (
coworkd) gérant les montages de dossiers - Le système de fichiers hôte entier (
/) monté en lecture-écriture dans la VM à/mnt/.virtiofs-root, accessible uniquement par root dans le guest
⛓️ Chaîne d’exploitation SharedRoot
- Obtention de capacités : L’utilisateur non privilégié appelle
unsharepour créer un namespace utilisateur (feature kernel non désactivée), obtenantCAP_NET_ADMINà l’intérieur - Chargement du module vulnérable : Avec
CAP_NET_ADMIN, configuration d’une action tc utilisant le moduleact_pedit, autoloadé par le kernel via netlink (autorisé par le filtre seccomp permissif) - Primitive d’écriture : Exploitation de CVE-2026-46331 (« pedit COW », bug Ubuntu public de juin 2026) permettant d’empoisonner le cache de pages d’un binaire en lecture seule sans modifier les octets sur disque
- Escalade vers guest-root :
coworkd(root, non durci) ré-exécute le binaire helper empoisonné ; comme le processus exécutant est déjà root,NoNewPrivsne s’applique pas - Évasion de la VM : Guest-root accède à
/mnt/.virtiofs-root— l’intégralité du système de fichiers hôte macOS — en lecture/écriture, sans aucune invite de permission
🎯 Impact
- Accès en lecture/écriture à l’ensemble du système de fichiers macOS de l’utilisateur connecté
- Exfiltration possible de clés SSH, credentials cloud, et tout fichier accessible par le compte utilisateur
- Exploitation déclenchée par un simple message dans une session Cowork avec un dossier connecté
🔐 Quatre décisions de conception identifiées comme défaillances
- Namespaces utilisateur non privilégiés activés :
apparmor_restrict_unprivileged_userns=1aurait bloqué la première étape - Filtre seccomp en liste noire permissive : Un filtre en liste blanche refusant
unshare,setns,clone3etAF_NETLINKaurait bloqué la chaîne - Autoload de modules non nécessaires : L’utilisation de
install act_pedit /bin/false(pattern déjà appliqué par Cowork pour un autre module) aurait empêché le chargement deact_pedit - Montage du système de fichiers hôte entier : Scoper le montage aux seuls dossiers connectés aurait contenu l’impact même avec guest-root
📌 Statut et mitigation
Anthropic a classé le rapport « Informative » (CVE dans la fenêtre de 30 jours du programme). Cowork utilise désormais l’exécution cloud par défaut, ce qui rend ce vecteur d’évasion local inapplicable dans cette configuration.
📄 Nature de l’article
Article de recherche technique offensif (post-mortem / publication de recherche) publié par la société Accomplish, visant à documenter une chaîne d’exploitation complète et à promouvoir une approche de conception sécurisée alternative pour l’exécution d’agents IA.
🧠 TTPs et IOCs détectés
TTP
- T1611 — Escape to Host (Privilege Escalation)
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1055 — Process Injection (Defense Evasion)
- T1548 — Abuse Elevation Control Mechanism (Privilege Escalation)
- T1005 — Data from Local System (Collection)
IOC
🟡 Indice de vérification factuelle : 46/100 (moyenne)
- ⬜ accomplish.ai — source non référencée (0pts)
- ✅ 10261 chars — texte complet (fulltext extrait) (15pts)
- ✅ 2 IOC(s) (6pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 5 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ 0/1 CVE(s) confirmée(s) (0pts)
🔗 Source originale : https://www.accomplish.ai/blog/sharedroot-escaping-claude-cowork-sandbox/