Le 18 juin 2026, Docker a publié la version 29.6.0 du moteur — une release de sécurité à traiter en urgence si tu fais tourner Docker Model Runner ou un registry OCI interne. Trois CVE sévères, dont un RCE container-to-host, et la fin définitive de docker sbom : voici ce qu'il faut patcher, migrer et vérifier avant de passer à autre chose.
Trois CVE sévères : ce qui est réellement exposé
CVE-2026-5817 est la plus critique. Il s'agit d'un RCE container-to-host dans le backend vllm-metal du Docker Model Runner — le composant introduit fin 2025 pour exécuter des modèles LLM localement via l'API Docker. Un processus malveillant à l'intérieur d'un container peut, via une requête forgée vers l'API interne du Model Runner, exécuter du code arbitraire sur l'hôte. Pas besoin de privilèges root dans le container : l'exposition vient du canal de communication entre le container et le démon Model Runner. Si tu n'utilises pas le Model Runner, tu n'es pas directement vulnérable — mais les deux CVE suivantes, elles, te concernent.
CVE-2026-8936 touche le driver grpcfuse (filesystem en mode VM sur macOS et Linux). Un container peut déclencher un panic noyau sur la VM hôte, causant un crash complet — un vecteur de déni de service exploitable sans élévation de privilèges. CVE-2026-33990 est un SSRF côté client OCI : lors du pull ou du push d'une image depuis un registry contrôlé par un attaquant, le client registry intégré peut émettre des requêtes HTTP arbitraires vers des ressources internes de l'hôte. Particulièrement dangereux si ton hôte Docker a accès à un réseau interne — cloud privé, Kubernetes, services métier.
Mise à jour : la procédure complète
# 1. Vérifier la version actuelle du moteur
docker version --format '{{.Server.Version}}'
# 2a. Linux — apt (Ubuntu 22.04 / 24.04 / Debian 12)
sudo apt-get update \
&& sudo apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
# 2b. Linux — rpm (RHEL 9 / Rocky / Alma)
sudo dnf update -y docker-ce docker-ce-cli containerd.io
# 2c. macOS / Windows — Docker Desktop 4.42.0
# Menu Docker Desktop → Check for Updates
# Docker Desktop 4.42.0 embarque Engine 29.6.0
# 3. Vérifier après mise à jour
docker version --format '{{.Server.Version}}'
# Attendu : 29.6.0
# 4. Si Model Runner était actif, vider les modèles chargés
# (le démon redémarre avec la mise à jour, mais c'est une bonne hygiène)
docker model ls
docker model rm --all 2>/dev/null || true<code>docker sbom</code> est mort — migre vers <code>docker scout sbom</code>
Votre dette technique s'accumule ?
Demander un audit →Depuis Docker Engine 29.6.0, docker sbom lève une erreur et refuse de s'exécuter. La commande était déjà dépréciée depuis la version 28.x, mais elle fonctionnait encore en mode dégradé. C'est terminé. La migration vers docker scout sbom est obligatoire — et c'est l'occasion d'en tirer parti : Scout supporte mieux les formats (SPDX, CycloneDX) et s'intègre directement avec docker scout cves pour corréler SBOM et vulnérabilités connues en une seule passe CI.
# Ancienne commande (erreur fatale dans 29.6.0+)
docker sbom myimage:latest
# Error: unknown command "sbom" for "docker"
# Nouvelle commande — remplacement direct
docker scout sbom myimage:latest
# Export SPDX JSON (pipeline CI, archivage légal)
docker scout sbom --format spdx-json myimage:latest > sbom.spdx.json
# Export CycloneDX (OWASP, Dependency-Track)
docker scout sbom --format cyclonedx myimage:latest > sbom.cdx.json
# Enchaîner SBOM + scan CVE en une passe
docker scout cves myimage:latest --format sarif > cves.sarif# .github/workflows/security.yml
name: Security Scan
on:
push:
branches: [main]
pull_request:
jobs:
sbom-and-cves:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build image
run: |
docker build \
--tag myapp:${{ github.sha }} \
--load \
.
- name: Generate SBOM (CycloneDX)
run: |
docker scout sbom \
--format cyclonedx \
myapp:${{ github.sha }} > sbom.cdx.json
- name: Scan CVEs (SARIF)
run: |
docker scout cves \
--format sarif \
myapp:${{ github.sha }} > cves.sarif
- name: Upload SARIF to GitHub Security
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: cves.sarif
- name: Archive SBOM
uses: actions/upload-artifact@v4
with:
name: sbom-${{ github.sha }}
path: sbom.cdx.jsonChecklist de vérification post-patch
docker version --format '{{.Server.Version}}'retourne bien29.6.0côté serveur- Docker Model Runner : désactivé s'il n'est pas utilisé, ou validé que la mise à jour du démon est effective (
docker model version) - Toutes les occurrences de
docker sbomremplacées pardocker scout sbomdans les pipelines CI/CD, Makefile et scripts de release - Volumes grpcfuse : si utilisés sur macOS, préférer virtiofs (
virtioFSdans Docker Desktop Settings) ou bind mounts classiques jusqu'à un patch confirmé de grpcfuse - Registry OCI interne : auditer les logs de proxy pour des requêtes sortantes inattendues (signe d'exploitation CVE-2026-33990) — chercher des appels vers 169.254.x.x ou 10.x.x.x depuis le processus
dockerd - Mettre à jour les politiques d'admission (OPA/Gatekeeper/Kyverno) si elles contraignent la version minimale du moteur
- Scanner les images de production avec
docker scout cves --only-fixedpour identifier les vulnérabilités patchables immédiatement
Ces trois CVE illustrent une tendance de fond : la surface d'attaque de Docker s'élargit à mesure que le Model Runner et l'outillage IA s'intègrent dans le démon principal. Le RCE vllm-metal n'est pas un incident isolé — c'est la conséquence directe d'exposer des backends d'inférence GPU sans isolation suffisante entre le canal container et l'hôte. Patcher maintenant, auditer les composants exposés, ne pas oublier les pipelines SBOM. Si tu veux un regard externe sur la posture sécurité de ton infra Docker — surface d'exposition, configuration du démon, pipelines CI — le Bear Scan couvre ça en une journée : audit ciblé, priorités actionnables, zéro jargon.
Votre dette technique s'accumule ?
Audit complet en 10 jours. Recommandations priorisées et actionnables.