ISTIO-SECURITY-2020-009
TCP 服务的授权策略news/security/istio-security-2020-004/index.md中用于 Principals /名称空间的通配符后缀其 Envoy 配置不正确。
安全漏洞详情 | |
---|---|
CVE(s) | CVE-2020-16844 |
CVSS 影响评分 | 6.8 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
受影响的版本 | 1.5 to 1.5.8 1.6 to 1.6.7 |
Istio 容易受到新发现隐患的攻击:
CVE-2020-16844
:对于源 Principals 和名称空间字段使用通配符后缀(例如:* -some-suffix
)的具有DENY
操作的已定义授权策略TCP服务调用者,将永远不会被拒绝访问。- CVSS Score: 6.8 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
Istio 用户以下列方式容易受到此漏洞的影响:
如果用户具有类似于以下内容的授权
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: foo
namespace: foo
spec:
action: DENY
rules:
- from:
- source:
principals:
- */ns/ns1/sa/foo # indicating any trust domain, ns1 namespace, foo svc account
Istio 将 Principal (和 source.principal
)字段转换为 Envoy 级别的字符串匹配。
stringMatch:
suffix: spiffe:///ns/ns1/sa/foo
它将不匹配任何合法的调用者,因为它错误的包含了 spiffe://
字符串。正确的字符串匹配应该是:
stringMatch:
regex: spiffe://.*/ns/ns1/sa/foo
AuthorizationPolicy
中的前缀和精确匹配不受影响,它们中的 ALLOW
操作也一样;HTTP 也不受影响。
防范
- 对于 Istio 1.5.x 部署:请升级至 Istio 1.5.9 或是更高的版本。
- 对于 Istio 1.6.x 部署:请升级至 Istio 1.6.8 或是更高的版本。
- 不要在 TCP 服务的源 Principal 或名称空间字段的
DENY
策略中使用后缀匹配,并在适用的情况下使用前缀和精确匹配。 在可能的情况下,在您的服务中将 TCP 更改为 HTTP 作为端口名后缀。
漏洞报告
希望大家遵循漏洞报告步骤,以报告任何可能会导致安全漏洞的 bug。