安全更新 - CVE-2019-12243

在对 Istio 1.1.7 的发行声明进行评审时,我们意识到这一版本中修复的 Issue 13868,实际上是一个安全漏洞。

起初我们认为这个 Bug 影响的是 TCP 认证,这一功能仍然处于 Alpha 阶段,因此无需启动安全顾问流程,然而接下来我们意识到 Deny CheckerList 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