Contexte et découverte
Le 22 septembre 2026, Docker a publié la version 0.42.0 de son composant Sandboxes. Cette mise à jour corrige deux vulnérabilités identifiées sous les références CVE‑2026‑77179 et CVE‑2026‑79994. La première, plus critique, permettait à du code malveillant exécuté dans un conteneur invité sur macOS d’exploiter la gestion des liens symboliques de virtio‑fs afin d’accéder ou de modifier des fichiers du système hôte en tant qu’utilisateur du moniteur de machine virtuelle.
Mécanisme de la vulnérabilité
Le composant virtio‑fs expose un partage de fichiers entre l’invité et l’hôte. Lorsqu’un processus invité crée un lien symbolique pointant en dehors du répertoire partagé, le moniteur de VM ne valide pas correctement le chemin cible. Un attaquant peut ainsi créer un symlink vers /etc/hosts, /private/var/root/.ssh/authorized_keys ou tout autre fichier sensible. Le moniteur, exécuté avec les privilèges du compte vmmonitor, suit le lien et effectue les opérations de lecture ou d’écriture demandées par le conteneur, contournant les contrôles d’isolation habituels.
Impact sur les hôtes macOS
En pratique, un conteneur compromis peut lire le contenu de fichiers de configuration système, injecter du code malveillant dans des scripts d’amorçage, ou modifier des clés SSH, ouvrant la porte à une escalade de privilèges vers le compte root. La portée de l’attaque dépend du niveau de privilège du processus vmmonitor, qui sur macOS est généralement associé à l’utilisateur _vmmonitor disposant d’un accès étendu aux ressources du système. La deuxième vulnérabilité (CVE‑2026‑79994) concerne une condition de course sur le relais de sockets, pouvant entraîner un déni de service ou, dans certains scénarios, une exécution de code non autorisée, mais son impact est moindre comparé à la fuite de fichiers.
Mesures de mitigation
Docker recommande d’installer immédiatement la version 0.42.0 ou supérieure. La mise à jour remplace le gestionnaire de liens symboliques par une implémentation qui vérifie que la cible du symlink reste confinée au répertoire partagé, bloquant ainsi toute tentative d’accès hors‑sandbox. En complément, les administrateurs peuvent désactiver virtio‑fs lorsqu’il n’est pas requis, ou appliquer des politiques de sécurité macOS (Gatekeeper, System Integrity Protection) pour restreindre les droits du compte _vmmonitor. Enfin, il est conseillé de surveiller les journaux du démon Docker pour détecter toute création inhabituelle de fichiers ou de liens dans le répertoire /var/run/docker/sandboxes.