Docker 引擎 19.03 发行说明

2015年3月19日

2021-02-01

安全

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

客户

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

2014年3月19日

2020-12-01

安全

建设者

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

联网

运行

无根

  • 锁定状态目录以防止被 systemd-tmpfiles moby/moby 自动清理 #41635
  • dockerd-rootless.sh:支持新的 containerd shim 套接字路径约定 moby/moby#41557

记录

2013年3月19日

2020-09-16

建设者

客户

联网

无根

运行

Windows

2012年3月19日

2020-06-18

客户

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

联网

运行

2011年3月19日

2020-06-01

网络

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

描述

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

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

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

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

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

相关问题请参阅 kubernetes/kubernetes#91507 。

2010年3月19日

2020-05-29

客户

联网

运行

包装

19.03.9

2020-05-14

建设者

  • buildkit:修复并行构建多个图像时并发映射写入恐慌。 莫比/莫比#40780
  • buildkit:修复了防止在用户的阶段之间对非 root 拥有的文件进行 chown 的问题。 莫比/莫比#40955
  • 避免在 Windows 上创建不相关的临时文件。 莫比/莫比#40877

客户

记录

  • 避免由于关闭已关闭的日志文件而导致容器日志无法轮转的情况。 莫比/莫比#40921

联网

运行

无根

安全

一群

19.03.8

2020-03-10

运行

19.03.7

2020-03-03

建设者

运行

客户

19.03.6

2020-02-12

建设者

  • builder-next:允许使用现代符号哈希进行 ssh 转发。 Docker/引擎#453
  • builder-next:触发后清除onbuild规则。 Docker/引擎#453
  • builder-next:修复启用用户名空间时的目录权限问题。 莫比/莫比#40440
  • 碰撞 hcssshim 以修复 Windows 1903 上的 docker 构建失败问题。docker /engine#429

联网

运行

19.03.5

2019-11-14

建设者

  • builder-next:添加entitlements到构建器配置中。 Docker/引擎#412
  • 修复 builder-next:使用构建机密或 ssh 转发与 userns-remap 时出现的权限错误。 Docker/引擎#420
  • 修复 builder-next:在已复制的目录中复制符号链接。 Docker/引擎#420

包装

  • 支持 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带有目录遍历的符号链接交换攻击。在即将发布的补丁版本中提供正确修复之前的解决方法:docker pause在执行文件操作之前使用容器。 莫比/莫比#39252
  • docker cp由于 CVE 缓解而回归。当 的来源docker cp设置为时会产生错误/

19.03.3

2019-10-08

安全

建设者

  • 修复 builder-next:解析第三方注册表的摘要。 Docker/引擎#339

  • 修复 builder-next:当守护进程通过套接字激活启动时,将构建用户命名空间。 Docker/引擎#373

  • 修复构建器下一个; session:释放每个连接转发的 ssh 套接字连接。 Docker/引擎#373

  • 修复 build-next: llbsolver: 多个缓存导入器上的错误。 Docker/引擎#373

客户

  • 添加了对 Docker 模板 0.1.6 的支持。

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

运行

  • 将 Golang 升级到 1.12.10。 Docker/引擎#387

  • 将containerd 升级到1.2.10。 Docker/引擎#385

  • 分发:修改拉取 v2 schema1 清单时的警告逻辑。 Docker/引擎#368

  • 修复了POST /images/create在提供不正确的平台选项时返回 500 状态代码的问题。 Docker/引擎#365

  • 修复了POST /build在提供不正确的平台选项时返回 500 状态代码的问题。 Docker/引擎#365

  • 修复了 32 位 ARMv7 上由于结构成员未对齐而导致的恐慌。 Docker/引擎#363

  • 修复链接到不存在的容器时返回“无效参数”。 Docker/引擎#352

  • 修复overlay2:使用内核 >= 5.2 时挂载时的繁忙错误。 Docker/引擎#332

  • 修复了docker rmi某些配置错误的系统中卡住的问题,例如失效的 NFS 共享。 Docker/引擎#335

  • 修复执行进程的阻塞 I/O 的处理。 Docker/引擎#296

  • 修复 jsonfile 记录器:max-size设置 和时跟踪日志卡住max-file=1Docker/引擎#378

已知的问题

新的

  • DOCKER-USERiptables 链丢失: docker/for-linux#810。用户无法在此 iptables 链之上执行额外的容器网络流量过滤。如果您没有在 .iptables 之上自定义 iptable 链,则不会受到此问题的影响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带有目录遍历的符号链接交换攻击。在即将发布的补丁版本中提供正确修复之前的解决方法:docker pause在执行文件操作之前使用容器。 莫比/莫比#39252
  • docker cp由于 CVE 缓解而回归。当 的来源docker cp设置为时会产生错误/

19.03.2

2019-09-03

建设者

客户

记录

联网

运行

  • 将 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 规则,流量无法传出主机。缺少的规则是:

    /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带有目录遍历的符号链接交换攻击。在即将发布的补丁版本中提供正确修复之前的解决方法:docker pause在执行文件操作之前使用容器。 莫比/莫比#39252

  • 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 规则,流量无法传出主机。缺少的规则是:

    /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带有目录遍历的符号链接交换攻击。在即将发布的补丁版本中提供正确修复之前的解决方法:docker pause在执行文件操作之前使用容器。 莫比/莫比#39252

  • 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 规则,流量无法传出主机。缺少的规则是:

    /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带有目录遍历的符号链接交换攻击。在即将发布的补丁版本中提供正确修复之前的解决方法:docker pause在执行文件操作之前使用容器。 莫比/莫比#39252

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