Aller au contenu principal
Retour au blog

Docker 29.6.0 : RCE container-to-host et fin de docker sbom

Flavien Métivier23 juin 20265 min

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.json

Checklist de vérification post-patch

  • docker version --format '{{.Server.Version}}' retourne bien 29.6.0 cô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 sbom remplacées par docker scout sbom dans les pipelines CI/CD, Makefile et scripts de release
  • Volumes grpcfuse : si utilisés sur macOS, préférer virtiofs (virtioFS dans 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-fixed pour 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.

Cet article vous a plu ? Partagez-le !

Votre dette technique s'accumule ?

Audit complet en 10 jours. Recommandations priorisées et actionnables.