CVE-2019-16276/11253:Kubernetes漏洞分析

ang010ela 漏洞 2019年10月18日发布
Favorite收藏

导语:​文中研究人员对两个修复的Kubernetes漏洞进行了分析。

Kubernetes补丁团队在周二发布了CVE-2019-16276和CVE-2019-11253漏洞的补丁。这两个漏洞在一些Kubernetes配置下非常危险,因此研究人员建议用户更新到Kubernetes 1.14.8, 1.15.5, 1.16.2版本。

CVE-2019-16276

该漏洞的根源是Go语言的标准HTTP库net/http。该库在Kubernetes中用于HTTP请求分析。其实现方式使一些无效的HTTP请求正常化,导致一些潜在的威胁。

HTTP请求是由field-name、一个冒号和对应的值组成。在HTTP/1.1规范中,在header的field-name和冒号之间是不允许有空白字符的。但net/http 库会把含有空白字符的header翻译成有效的header,违反HTTP RFC。

如果有依赖该库的GO服务器使用反向代理来过滤请求header,这个问题就变得很危险了。因为代理可能会忽略无效的header,然后转发给Go服务器,此时header就会被认为是有效的。

如果反向代理服务器是用来认证的,那么攻击者就可以利用该漏洞通过伪造无效的header来认证任意用户。这个场景并非全部是理论上的,Kubernetes API服务器就可以配置为Authenticating Proxy,并通过请求header来识别用户。这样的代理可能用来允许用户用现有的SSO方案或其他访问控制配置来认证API服务器。

为了利用该攻击,假设X-Remote-User 是用来识别API 服务器的user field的,那么攻击者就可以发送如下请求到代理:

X-Remote-User : admin

如果代理可以过滤 X-Remote-User header,但无法识别出header并转发到Kubernetes API服务器,攻击者就可以成功传递含有admin user角色的API请求。

攻击场景如下图所示:

This shows one of two recently patched Kubernetes vulnerabilities.

在该例中,代理接受匿名连接并转发无效的header。攻击者发送含有空白字符的无效header的恶意请求。API服务器接受该恶意header,并以Bob的角色执行攻击者的请求。漏洞利用的详情依赖于代理服务器的实现。

研究人员建议将Kubernetes安装或设置为认证代理的用户,尽快更新到最新版本以防被攻击者利用。

CVE-2019-11253

该漏洞是Kubernetes YAML分析漏洞,可能会引发DoS攻击。该漏洞是一个Kubernetes用户分析栈溢出问题时发现的漏洞。该用户发现Kubernetes API服务器易受到针对YAML 分析器的攻击——YAML炸弹攻击。攻击者可以用引用来指数级地加载以破坏YAML分析器。

原始的漏洞利用如下所示:

This illustrates an exploit involved in one of two recently patched Kubernetes vulnerabilities.

该漏洞CVE编号虽然是Kubernetes分配的,并且发布了补丁。但实际上该漏洞位于YAML parser库中。

研究人员分析该漏洞利用后认为该漏洞非常严重。因此任意角色的可以交付YAML到API服务器的用户和容器都可以被利用。虽然是依赖于重启策略和重启限制,但攻击者可能会滥用该攻击并持续进行传播。

研究人员建议用户对分配给每个用户的角色进行检查,确保是必须的,尤其是那些允许发送含有YAML文件的POST请求的角色。

本文翻译自:https://blog.paloaltonetworks.com/2019/10/cloud-kubernetes-vulnerabilities/如若转载,请注明原文地址: https://www.4hou.com/vulnerable/21001.html
点赞 4
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论