设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Kubernetes kubectl cp命令中发现第三处目录遍历问题

2019-8-26 11:56| 发布者: joejoe0332| 查看: 498| 评论: 0|原作者: oschina|来自: oschina

摘要: Kubernetes 官方又发现了一处 kubectl cp 命令相关的目录遍历漏洞。该漏洞可以使 kubectl cp 命令启用目录遍历,使得恶意容器可以替换或创建用户工作站上的文件。漏洞属于客户端缺陷,需要利用用户交互,恶意用户可 ...

Kubernetes 官方又发现了一处 kubectl cp 命令相关的目录遍历漏洞。

该漏洞可以使 kubectl cp 命令启用目录遍历,使得恶意容器可以替换或创建用户工作站上的文件。漏洞属于客户端缺陷,需要利用用户交互,恶意用户可能创建或覆盖 kubectl cp 操作的目标目录之外的文件。

受影响版本:

  • Kubernetes 1.0.x-1.12.x
  • Kubernetes 1.13.0-1.13.8
  • Kubernetes 1.14.0-1.14.4
  • Kubernetes 1.15.0-1.15.1

这是近段时间在 Kubernetes kubectl cp 命令中发现的第三个相关问题了,此前我们报导过这一命令漏洞

kubectl cp 命令允许在容器和用户计算机之间复制文件。要从容器中复制文件,Kubernetes 调用容器内的`tar`二进制文件,以创建或解压 tar 包。

对 tar 的操作依赖于 CMD/CP/cp.go,其中的函数`copyFromPod`实现了从容器中复制文件的过程,它通过远程 exec(`&exec.DefaultRemoteExecutor`)调用容器中的 tar,然后在函数`untarAll`中解压用户机器上的结果。此函数使用“archive/tar” Go 包根据结果 tar 头进行 tar 解析,最后将文件写入目标目录。

这个过程中,如果容器上的`tar`二进制文件是恶意的,那么它可以运行任意代码并输出恶意结果,这将最终导致典型的目录遍历攻击,允许恶意容器在复制时将任何文件写入用户计算机上的任何路径。

虽然此前已经引入了`cp.go:clean`函数来避免这个目录遍历,但是 Ariel 发现其实可以创建和跟踪来自 tar 头的符号链接,攻击者可以制作一个恶意 tar,其中包含一个带有几乎任何路径的符号链接的头,以及一个与符号链接同名的目录内文件的后续头。当通过 cp untar 函数提取时,链接将导致在符号链接的路径中创建或修改所需文件。

此问题已经修复,kubectl cp 命令在执行 untar 过程中对所有子文件的目标路径将执行更严格的校验,禁止所有在 cp 目标路径外的解压后拷贝动作。

用户可以通过升级 kubectl 来修复该漏洞:

  • kubectl 版本为 1.13.x,升级到 1.13.9。
  • kubectl 版本为 1.14.x,升级到 1.14.5。
  • kubectl 版本为 1.15.x,升级到 1.15.2。
  • kubectl 版本为 1.12.x 及以下版本,升级到 1.13.9、1.14.5 或 1.15.2。

详情查看:


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部