安全更新 - CVE-2019-12243
在对 Istio 1.1.7 的发行声明进行评审时,我们意识到这一版本中修复的 Issue 13868,实际上是一个安全漏洞。
起初我们认为这个 Bug 影响的是 TCP 认证,这一功能仍然处于 Alpha 阶段,因此无需启动安全顾问流程,然而接下来我们意识到 Deny Checker 和 List Checker 这两个稳定版功能也受到了影响。我们对流程进行了复查,确认将应该进行披露的安全漏洞当成了普通 Bug。
我们对 Bug 的代码变更进行了跟踪,发现是从 Istio 1.1 中引入的,其影响一直持续到了 1.1.6 版本。
这一漏洞现已命名为 CVE 2019-12243。
受影响的 Istio 版本
下列版本都受到这一问题的影响:
- 1.1、1.1.1、1.1.2、1.1.3、1.1.4、1.1.5、1.1.6。
影响级别
总体 CVSS 分数:8.9 AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N/E:H/RL:O/RC:C
漏洞影响和检测
从 Istio 1.1 开始,缺省的 Istio 安装配置中,策略功能会被禁用。可以用下列命令来检查策略功能的状态:
$ kubectl -n istio-system get cm istio -o jsonpath="{@.data.mesh}" | grep disablePolicyChecks
disablePolicyChecks: true
如果 disablePolicyChecks
设置为 true
,就不会受到该漏洞的影响。
如果下列几个条件全都符合,就会因为该漏洞造成安全威胁:
- 运行的是受影响的 Istio 版本。
disablePolicyChecks
设置为 false(可以用前面提到的方法进行检查)。- 你的工作负载不是 HTTP、HTTP/2 或者 gRPC 协议。
- 使用 Mixer 适配器(例如 Deny Checker、List Checker)为 TCP 服务提供认证。
对策
- Istio 1.0.x 的用户不受影响。
- Istio 1.1.x 用户:至少要更新到 Istio 1.1.7
致谢
Istio 团队在此感谢报告这一问题的 Haim Helman
。