⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Notes de version Docker Engine 19.03

19.03.15

2021-02-01

Sécurité

  • CVE-2021-21285 Empêcher qu'une image invalide fasse planter le démon docker
  • CVE-2021-21284 Verrouiller les permissions de fichiers pour empêcher un root remappé d'accéder à l'état docker
  • Assurer que les profils AppArmor et SELinux sont appliqués lors de la construction avec BuildKit

Client

  • Vérifier les contextes avant de les importer pour réduire le risque d'échappement de fichiers extraits du magasin de contexte

19.03.14

2020-12-01

Sécurité

  • CVE-2020-15257: Mise à jour des binaires statiques intégrés de containerd vers v1.3.9 moby/moby#41731. Les gestionnaires de packages doivent mettre à jour le package containerd.io.

Builder

  • Les versions bêta d'apparmor sont maintenant analysées correctement, empêchant les échecs de construction moby/moby#41542

Réseau

  • Correction d'une panique lorsque le service swarmkit continue d'échouer à démarrer moby/moby#41635

Runtime

  • Retourner les erreurs correctes au lieu de fausses -EINVAL moby/moby#41293

Rootless

  • Verrouiller le répertoire d'état pour empêcher le nettoyage automatique par systemd-tmpfiles moby/moby#41635
  • dockerd-rootless.sh: support pour la nouvelle convention de chemin de socket containerd shim moby/moby#41557

Journalisation

19.03.13

2020-09-16

Builder

  • buildkit: Correction de déréférencement nul dans la logique de cache moby/moby#41279
  • buildkit: Traiter les sockets Unix comme des fichiers réguliers pendant COPY/ADD moby/moby#41269
  • buildkit: Ignorer les xattrs système et sécurité dans le calcul pour assurer un cache COPY cohérent indépendamment de l'environnement SELinux moby/moby#41222
  • buildkit: Rendre le comportement de --cache-from plus fiable moby/moby#41222
  • buildkit: Correction d'une boucle infinie consommant du CPU lors de l'export de cache moby/moby#41185

Client

  • Mise à jour vers Golang 1.13.15 docker/cli#2674
  • Correction des problèmes de permission de fichier de configuration (~/.docker/config.json) docker/cli#2631
  • build: Correction de panique sur terminaux avec hauteur zéro docker/cli#2719
  • windows: Correction d'un problème potentiel avec le caractère de nouvelle ligne dans la console docker/cli#2623

Réseau

  • Nettoyer le sandbox réseau en cas d'échec moby/moby#41081
  • Correction des messages d'erreur superficiels en transmettant les erreurs liées aux délais à l'utilisateur moby/moby#41312
  • Correction de fuites de descripteurs de fichiers netns moby/moby#41287

Rootless

  • Correction de fuite de ressources du redirecteur de ports moby/moby#41277

Runtime

Windows

  • Correction du temps de démarrage lent des conteneurs Windows lors de l'utilisation de l'image servercore moby/moby#41192

19.03.12

2020-06-18

Client

  • Correction d'un bug empêchant la déconnexion du registre lors de l'utilisation de plusieurs fichiers de configuration (par ex. Windows vs WSL2 lors de l'utilisation de Docker Desktop) docker/cli#2592
  • Correction d'une régression empêchant la lecture des métadonnées de contexte docker/cli#2586
  • Mise à jour vers Golang 1.13.12 docker/cli#2575

Réseau

Runtime

19.03.11

2020-06-01

Réseau

Désactivation des annonces de routeur IPv6 pour empêcher l'usurpation d'adresse. CVE-2020-13401

Description

Dans la configuration par défaut de Docker, l'interface réseau du conteneur est un lien ethernet virtuel vers l'hôte (interface veth). Dans cette configuration, un attaquant capable d'exécuter un processus en tant que root dans un conteneur peut envoyer et recevoir des paquets arbitraires vers l'hôte en utilisant la capacité CAP_NET_RAW (présente dans la configuration par défaut).

Si IPv6 n'est pas totalement désactivé sur l'hôte (via ipv6.disable=1 sur la ligne de commande du noyau), il sera soit non configuré soit configuré sur certaines interfaces, mais il est assez probable que le routage ipv6 soit désactivé, c'est-à-dire /proc/sys/net/ipv6/conf//forwarding == 0. Aussi par défaut, /proc/sys/net/ipv6/conf//accept_ra == 1. La combinaison de ces 2 sysctls signifie que l'hôte accepte les annonces de routeur et configure la pile IPv6 en les utilisant.

En envoyant des annonces de routeur "malveillantes" depuis un conteneur, un attaquant peut reconfigurer l'hôte pour rediriger une partie ou tout le trafic IPv6 de l'hôte vers le conteneur contrôlé par l'attaquant.

Même s'il n'y avait pas de trafic IPv6 auparavant, si le DNS retourne des enregistrements A (IPv4) et AAAA (IPv6), de nombreuses bibliothèques HTTP essaieront de se connecter via IPv6 d'abord puis de revenir à IPv4, donnant une opportunité à l'attaquant de répondre. Si par hasard l'hôte a une vulnérabilité comme le RCE de l'année dernière dans apt (CVE-2019-3462), l'attaquant peut maintenant escalader vers l'hôte.

Comme CAP_NET_ADMIN n'est pas présent par défaut pour les conteneurs Docker, l'attaquant ne peut pas configurer les IPs qu'il veut intercepter, il ne peut pas utiliser iptables pour NAT ou REDIRECT le trafic, et il ne peut pas utiliser IP_TRANSPARENT. L'attaquant peut cependant toujours utiliser CAP_NET_RAW et implémenter une pile tcp/ip dans l'espace utilisateur.

Voir kubernetes/kubernetes#91507 pour les problèmes connexes.

19.03.10

2020-05-29

Client

  • Correction de la négociation de version avec un moteur plus ancien. docker/cli#2538
  • Éviter de définir les drapeaux SSH via le nom d'hôte. docker/cli#2560
  • Correction de panique lorsque DOCKER_CLI_EXPERIMENTAL est invalide. docker/cli#2558
  • Éviter une panique potentielle sur s390x en mettant à niveau Go vers 1.13.11. docker/cli#2532

Réseau

Runtime

  • Éviter une panique potentielle sur s390x en mettant à niveau Go vers 1.13.11. moby/moby#40978

Packaging

19.03.9

2020-05-14

Builder

  • buildkit: Correction de panique d'écriture de map concurrente lors de la construction de plusieurs images en parallèle. moby/moby#40780
  • buildkit: Correction d'un problème empêchant le chown de fichiers non possédés par root entre étapes avec userns. moby/moby#40955
  • Éviter la création de fichiers temporaires non pertinents sur Windows. moby/moby#40877

Client

  • Correction de panique sur volumes à caractère unique. docker/cli#2471
  • Détection paresseuse des fonctionnalités du démon pour éviter de longs délais d'attente sur les commandes simples. docker/cli#2442
  • docker context inspect sur Windows est maintenant plus rapide. docker/cli#2516
  • Mise à jour vers Golang 1.13.10. docker/cli#2431
  • Mise à jour de gopkg.in/yaml.v2 vers v2.2.8. docker/cli#2470

Journalisation

  • Éviter une situation empêchant la rotation des journaux de conteneur due à la fermeture d'un fichier journal fermé. moby/moby#40921

Réseau

  • Correction d'une panique potentielle lors du redémarrage. moby/moby#40809
  • Assigner la valeur réseau correcte au champ Subnet du pont par défaut. moby/moby#40565

Runtime

  • Correction du crash docker lors de la création d'espaces de noms avec UID dans /etc/subuid et /etc/subgid. moby/moby#40562
  • Amélioration de la correspondance de plateforme ARM. moby/moby#40758
  • overlay2: afficher le système de fichiers de sauvegarde. moby/moby#40652
  • Mise à jour de CRIU vers v3.13 "Silicon Willet". moby/moby#40850
  • Afficher l'avertissement de dépréciation du schéma v2 schema1 du registre seulement lors d'un fallback réussi, par opposition à toute erreur de registre. moby/moby#40681
  • Utiliser FILE_SHARE_DELETE pour les fichiers journaux sur Windows. moby/moby#40563
  • Mise à jour vers Golang 1.13.10. moby/moby#40803

Rootless

  • Maintenant rootlesskit-docker-proxy retourne un message d'erreur détaillé lors de l'exposition de ports privilégiés. moby/moby#40863
  • Support des ID numériques dans /etc/subuid et /etc/subgid. moby/moby#40951

Sécurité

  • apparmor: ajout des règles manquantes pour userns. moby/moby#40564
  • SElinux: correction des erreurs ENOTSUP non détectées lors du réétiquetage. moby/moby#40946

Swarm

  • Augmentation du taux de remplissage pour le logger afin d'éviter le blocage sur les journaux de service. moby/moby#40628
  • Correction d'un problème où un seul gestionnaire swarm est bloqué en état Down après redémarrage. moby/moby#40831
  • tasks.db ne grandit plus indéfiniment. moby/moby#40831

19.03.8

2020-03-10

Runtime

  • Amélioration de l'atténuation pour CVE-2019-14271 pour certaines configurations nscd.

19.03.7

2020-03-03

Builder

  • builder-next: Correction de blocage dans les coins en cas de deadlock. moby/moby#40557

Runtime

  • overlay: supprimer les exécutables modprobe. moby/moby#40462
  • selinux: afficher de meilleurs messages d'erreur lors de la définition des étiquettes de fichier. moby/moby#40547
  • Accélérer la collecte des statistiques initiales. moby/moby#40549

Client

19.03.6

2020-02-12

Builder

  • builder-next: Permettre les hachages de signature modernes pour le transfert ssh. docker/engine#453
  • builder-next: Effacer les règles onbuild après déclenchement. docker/engine#453
  • builder-next: Correction d'un problème avec les permissions de répertoire lorsque usernamespaces est activé. moby/moby#40440
  • Mise à jour de hcsshim pour résoudre le problème de construction docker échouant sur Windows 1903. docker/engine#429

Réseau

Runtime

19.03.5

2019-11-14

Builder

  • builder-next: Ajouté entitlements dans la configuration builder. docker/engine#412
  • Correction de builder-next: erreurs de permission lors de l'utilisation de secrets ou de transfert ssh avec userns-remap. docker/engine#420
  • Correction de builder-next: copier un lien symbolique à l'intérieur d'un répertoire déjà copié. docker/engine#420

Packaging

  • Support RHEL 8 packages

Runtime

19.03.4

2019-10-17

Réseau

  • Annulation des modifications de libnetwork pour résoudre le problème de chaîne iptables DOCKER-USER. docker/engine#404

Problèmes connus

Existant

  • Dans certaines circonstances avec des clusters importants, Docker information might, as part of the Swarm section, include the error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). This does not indicate any failure or misconfiguration by the user, and requires no response.
  • Conflit de port orchestrateur peut se produire lors de la redéploiement de tous les services en tant que nouveau. En raison de nombreuses demandes de gestionnaire swarm dans un court laps de temps, certains services ne sont pas en mesure d'écouter le trafic et provoquent une erreur 404
  • Orchestrator port conflict can occur when redeploying all services as new. Due to many Swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a 404 error after being deployed.
    • Workaround: restart all tasks via docker service update --force.
  • CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release: docker pause container before doing file operations. moby/moby#39252
  • docker cp regression due to CVE mitigation. An error is produced when the source of docker cp is set to /.

19.03.3

2019-10-08

Security

Builder

  • Fix builder-next: resolve digest for third party registries. docker/engine#339

  • Fix builder-next: user namespace builds when daemon started with socket activation. docker/engine#373

  • Fix builder-next; session: release forwarded ssh socket connection per connection. docker/engine#373

  • Fix build-next: llbsolver: error on multiple cache importers. docker/engine#373

Client

  • Added support for Docker Template 0.1.6.

  • Mitigate against YAML files that have excessive aliasing. docker/cli#2119

Runtime

Known Issues

New

  • DOCKER-USER iptables chain is missing: docker/for-linux#810. Users cannot perform additional container network traffic filtering on top of this iptables chain. You are not affected by this issue if you are not customizing iptable chains on top of DOCKER-USER.
    • Workaround: Insert the iptables chain after the docker daemon starts. For example:
      iptables -N DOCKER-USER
      iptables -I FORWARD -j DOCKER-USER
      iptables -A DOCKER-USER -j RETURN

Existing

  • In some circumstances with large clusters, docker information might, as part of the Swarm section, include the error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). This does not indicate any failure or misconfiguration by the user, and requires no response.
  • Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a 404 error after being deployed.
    • Workaround: restart all tasks via docker service update --force.
  • CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release: docker pause container before doing file operations. moby/moby#39252
  • docker cp regression due to CVE mitigation. An error is produced when the source of docker cp is set to /.

19.03.2

2019-09-03

Builder

Client

  • Fix Windows absolute path detection on non-Windows docker/cli#1990

  • Fix to zsh completion script for docker login --username.

  • Fix context: produce consistent output on context create. docker/cli#1985

  • Fix support for HTTP proxy env variable. docker/cli#2059

Logging

Networking

  • Prevent panic on network attached to a container with disabled networking. moby/moby#39589

Runtime

  • Bump Golang to 1.12.8.

  • Fix a potential engine panic when using XFS disk quota for containers. moby/moby#39644

Swarm

Known issues

  • In some circumstances with large clusters, docker information might, as part of the Swarm section, include the error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). This does not indicate any failure or misconfiguration by the user, and requires no response.

  • Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a 404 error after being deployed.

    • Workaround: restart all tasks via docker service update --force.
  • Traffic cannot egress the HOST because of missing Iptables rules in the FORWARD chain The missing rules are :

    /sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    • Workaround: Add these rules back using a script and cron definitions. The script must contain '-C' commands to check for the presence of a rule and '-A' commands to add rules back. Run the script on a cron in regular intervals, for example, every minutes.
    • Affected versions: 18.09.1, 19.03.0
  • CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release: docker pause container before doing file operations. moby/moby#39252

  • docker cp regression due to CVE mitigation. An error is produced when the source of docker cp is set to /.

19.03.1

2019-07-25

Security

  • Fixed loading of nsswitch based config inside chroot under Glibc. CVE-2019-14271

Known issues

  • In some circumstances, in large clusters, docker information might, as part of the Swarm section, include the error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). This does not indicate any failure or misconfiguration by the user, and requires no response.

  • Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a 404 error after being deployed.

    • Workaround: restart all tasks via docker service update --force.
  • Traffic cannot egress the HOST because of missing Iptables rules in the FORWARD chain The missing rules are :

    /sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    • Workaround: Add these rules back using a script and cron definitions. The script must contain '-C' commands to check for the presence of a rule and '-A' commands to add rules back. Run the script on a cron in regular intervals, for example, every minutes.
    • Affected versions: 18.09.1, 19.03.0
  • CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release: docker pause container before doing file operations. moby/moby#39252

  • docker cp regression due to CVE mitigation. An error is produced when the source of docker cp is set to /.

19.03.0

2019-07-22

Builder

Client

API

Experimental

Security

Runtime

Networking

Swarm

Logging

Deprecation

  • Deprecate image manifest v2 schema1 in favor of v2 schema2. Future version of Docker will remove support for v2 schema1 althogether. moby/moby#39365
  • Removed v1.10 migrator. moby/moby#38265
  • Now skipping deprecated storage-drivers in auto-selection. moby/moby#38019
  • Deprecated aufs storage driver and added warning. moby/moby#38090
  • Removed support for 17.09.

For more information on deprecated flags and APIs, refer to deprecation information for target removal dates.

Known issues

  • In some circumstances with large clusters, docker information might, as part of the Swarm section, include the error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). This does not indicate any failure or misconfiguration by the user, and requires no response.

  • Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a 404 error after being deployed.

    • Workaround: restart all tasks via docker service update --force.
  • Traffic cannot egress the HOST because of missing Iptables rules in the FORWARD chain The missing rules are :

    /sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    • Workaround: Add these rules back using a script and cron definitions. The script must contain '-C' commands to check for the presence of a rule and '-A' commands to add rules back. Run the script on a cron in regular intervals, for example, every minutes.
    • Affected versions: 18.09.1, 19.03.0
  • CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release: docker pause container before doing file operations. moby/moby#39252

  • docker cp regression due to CVE mitigation. An error is produced when the source of docker cp is set to /.