ISTIO-SECURITY-2020-007

Envoy 中的多个拒绝服务漏洞。

Jun 30, 2020

安全漏洞详情
CVE(s)CVE-2020-12603
CVE-2020-12605
CVE-2020-8663
CVE-2020-12604
CVSS 影响评分7.5 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
受影响的版本1.5 to 1.5.6
1.6 to 1.6.3

Envoy 和 Istio 容易受到4个新发现漏洞的攻击:

防范

通过添加下游连接的配置限制,在 Envoy 解决 CVE-2020-8663。 必须配置此限制以防范此漏洞。 在 Ingress 网关上执行如下步骤来配置限制。

  1. 通过下载 custom-bootstrap-runtime.yaml创建配置映射。 根据部署中各个网关实例所需的并发连接数,在配置映射中更新 global_downstream_max_connections 。 一旦达到限制,Envoy 将开始拒绝 TCP 连接。

    $ kubectl -n istio-system apply -f custom-bootstrap-runtime.yaml
    
  2. 使用以上配置来修补 Ingress 网关。 下载 gateway-patch.yaml 文件并使用如下命令。

    $ kubectl --namespace istio-system patch deployment istio-ingressgateway --patch "$(cat gateway-patch.yaml)"
    
  3. 确认新限制已经配置。

    $ ISTIO_INGRESS_PODNAME=$(kubectl get pods -l app=istio-ingressgateway -n istio-system  -o jsonpath="{.items[0].metadata.name}")
    $ kubectl --namespace istio-system exec -i -t  ${ISTIO_INGRESS_PODNAME} -c istio-proxy -- curl -sS http://localhost:15000/runtime
    
    {
    "entries": {
     "overload.global_downstream_max_connections": {
      "layer_values": [
       "",
       "250000",
       ""
      ],
      "final_value": "250000"
     }
    },
    "layers": [
     "static_layer_0",
     "admin"
    ]
    }
    

漏洞报告

希望大家遵循漏洞报告步骤,以报告任何可能会导致安全漏洞的 bug。