Docker Engine 19.03 发行说明

19.03.15

2021-02-01

安全

  • CVE-2021-21285漏洞防止无效镜像使 docker 守护进程崩溃
  • CVE-2021-21284漏洞锁定文件权限以防止重新映射的 root 访问 docker 状态
  • 确保在使用 BuildKit 构建时应用 AppArmor 和 SELinux 配置文件

客户

  • 在导入上下文之前检查上下文,以降低提取的文件转义上下文存储的风险

19.03.14

2020-12-01

安全

  • CVE-2020-15257: 漏洞 将 containerd 的捆绑静态二进制文件更新到 v1.3.9 moby/moby#41731。 Package Manager 应更新 containerd.io Package。

建筑工人

  • 现在可以正确解析 apparmor 的 Beta 版本,防止构建失败 moby/moby#41542

联网

运行

无根

伐木

19.03.13

2020-09-16

建筑工人

  • buildkit:修复缓存逻辑 moby/moby 中的 nil 取消引用问题#41279
  • buildkit:在 COPY/ADD moby/moby 期间将 Unix 套接字视为常规文件#41269
  • buildkit:在计算中忽略系统和安全 xattrs,以确保无论 SELinux 环境如何 moby/moby 都保持一致的 COPY 缓存#41222
  • buildkit:使行为更可靠 moby/moby#41222--cache-from
  • buildkit:修复导出缓存 moby/moby 时无限循环烧录 CPU 的问题#41185

客户

联网

无根

运行

窗户

  • 修复使用 servercore 镜像 moby/moby 时 Windows 容器启动时间慢的问题#41192

19.03.12

2020-06-18

客户

  • 修复使用多个配置文件时无法从注册表注销的问题(例如,使用 Docker Desktop 时 Windows 与 WSL2)docker/cli#2592
  • 修复阻止读取上下文元数据的回归问题 docker/cli#2586
  • 提升 Golang 1.13.12 docker/cli #2575

联网

运行

19.03.11

2020-06-01

网络

禁用 IPv6 路由器通告以防止地址欺骗。CVE-2020-13401漏洞

描述

在 Docker 默认配置中,容器网络接口是通往主机的虚拟以太网链路(veth 接口)。 在此配置中,能够在容器中以 root 身份运行进程的攻击者可以使用该功能(存在于默认配置中)向主机发送和接收任意数据包。CAP_NET_RAW

如果 IPv6 在主机上没有完全禁用(通过内核 cmdline),它将被取消配置或在某些接口上配置,但很可能禁用了 IPv6 转发,即 .此外,默认情况下, .这两个 sysctl 的组合意味着主机接受路由器通告并使用它们配置 IPv6 堆栈。ipv6.disable=1/proc/sys/net/ipv6/conf//forwarding == 0/proc/sys/net/ipv6/conf//accept_ra == 1

通过从容器发送“恶意”路由器通告,攻击者可以重新配置主机,以将主机的部分或全部 IPv6 流量重定向到攻击者控制的容器。

即使之前没有 IPv6 流量,如果 DNS 返回 A (IPv4) 和 AAAA (IPv6) 记录,许多 HTTP 库也会先尝试通过 IPv6 连接,然后回退到 IPv4,从而给攻击者提供响应的机会。 如果主机偶然出现类似去年 apt 中的 RCE (CVE-2019-3462) 的漏洞,攻击者现在可以升级到主机。

由于 Docker 容器默认不存在,因此攻击者无法配置他们想要的 IP 以进行 MitM,他们无法使用 iptables 进行 NAT 或重定向流量,并且他们不能使用 . 但是,攻击者仍然可以在用户空间中使用和实现 tcp/ip 堆栈。CAP_NET_ADMINIP_TRANSPARENTCAP_NET_RAW

有关相关问题,请参阅 kubernetes/kubernetes#91507

19.03.10

2020-05-29

客户

联网

运行

包装

19.03.9

2020-05-14

建筑工人

客户

伐木

  • 避免因关闭已关闭的日志文件而阻止容器日志轮换的情况。白鲸/白鲸#40921

联网

运行

无根

安全

19.03.8

2020-03-10

运行

19.03.7

2020-03-03

建筑工人

运行

客户

19.03.6

2020-02-12

建筑工人

联网

运行

19.03.5

2019-11-14

建筑工人

包装

  • 支持 RHEL 8 软件包

运行

19.03.4

2019-10-17

联网

已知问题

现存

  • 在大型集群的某些情况下,Docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
  • 将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 Swarm 管理器 请求,某些服务无法接收流量,并在部署后导致错误。404
    • 解决方法:通过 重新启动所有任务。docker service update --force
  • CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252docker pause
  • docker cp由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp/

19.03.3

2019-10-08

安全

建筑工人

客户

  • 新增对 Docker Template 0.1.6 的支持。

  • 缓解具有过多别名的 YAML 文件。docker/cli #2119

运行

已知问题

新增功能

  • DOCKER-USER缺少 iptables 链:docker/for-linux#810。 用户无法在 this iptables 链。如果您不是,则不会受到此问题的影响 在 .DOCKER-USER
    • 解决方法:在 docker 守护进程启动后插入 iptables 链。 例如:
      iptables -N DOCKER-USER
      iptables -I FORWARD -j DOCKER-USER
      iptables -A DOCKER-USER -j RETURN

现存

  • 在大型集群的某些情况下,docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
  • 将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager 请求,某些服务无法接收流量,并在部署后导致错误。404
    • 解决方法:通过 重新启动所有任务。docker service update --force
  • CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252docker pause
  • docker cp由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp/

19.03.2

2019-09-03

建筑工人

客户

  • 修复非 Windows docker/cli 上的 Windows 绝对路径检测问题 #1990

  • 修复了 的 zsh 完成脚本。docker login --username

  • 修复上下文:在 上产生一致的输出。docker/cli #1985context create

  • 修复对 HTTP 代理 env 变量的支持。docker/cli #2059

伐木

联网

运行

  • 将 Golang 升级到 1.12.8。

  • 修复了在为容器使用 XFS 磁盘配额时可能出现的引擎崩溃问题。白鲸/白鲸#39644

已知问题

  • 在大型集群的某些情况下,docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)

  • 将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager 请求,某些服务无法接收流量,并在部署后导致错误。404

    • 解决方法:通过 重新启动所有任务。docker service update --force
  • 由于 FORWARD 链中缺少 Iptables 规则,流量无法流出 HOST 缺少的规则是:

    /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
    • 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本 必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令 规则返回。定期在 cron 上运行脚本,例如,每分钟运行一次。
    • 受影响的版本:18.09.1、19.03.0
  • CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252docker pause

  • docker cp由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp/

19.03.1

2019-07-25

安全

  • 修复了在 Glibc 下的 chroot 中加载基于 nsswitch 的配置。CVE-2019-14271漏洞

已知问题

  • 在某些情况下,在大型集群中,docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)

  • 将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager 请求,某些服务无法接收流量,并在部署后导致错误。404

    • 解决方法:通过 重新启动所有任务。docker service update --force
  • 由于 FORWARD 链中缺少 Iptables 规则,流量无法流出 HOST 缺少的规则是:

    /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
    • 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本 必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令 规则返回。定期在 cron 上运行脚本,例如,每分钟运行一次。
    • 受影响的版本:18.09.1、19.03.0
  • CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252docker pause

  • docker cp由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp/

19.03.0

2019-07-22

建筑工人

客户

应用程序接口

实验的

安全

运行

联网

伐木

折旧

有关已弃用的标记和 API 的更多信息,请参阅 目标删除日期的弃用信息.

已知问题

  • 在大型集群的某些情况下,docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)

  • 将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager 请求,某些服务无法接收流量,并在部署后导致错误。404

    • 解决方法:通过 重新启动所有任务。docker service update --force
  • 由于 FORWARD 链中缺少 Iptables 规则,流量无法流出 HOST 缺少的规则是:

    /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
    • 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本 必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令 规则返回。定期在 cron 上运行脚本,例如,每分钟运行一次。
    • 受影响的版本:18.09.1、19.03.0
  • CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252docker pause

  • docker cp由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp/