1.2.2.18. Red Hat OpenShift Service Mesh 2.0.7.1 的新功能

此 Red Hat OpenShift Service Mesh 发行版本解决了 CVE 报告的安全漏洞问题。

1.2.2.18.1. Red Hat OpenShift Service Mesh 处理 URI 片段的方式改变

Red Hat OpenShift Service Mesh 包含一个可远程利用的漏洞 CVE-2021-39156,其中 HTTP 请求带有片段(以 # 字符开头的 URI 末尾的一个部分),您可以绕过 Istio URI 基于路径的授权策略。例如,Istio 授权策略拒绝发送到 URI 路径 /user/profile 的请求。在存在安全漏洞的版本中,带有 URI 路径 /user/profile#section1 的请求绕过拒绝策略并路由到后端(通过规范的 URI path /user/profile%23section1),可能会导致安全事件。

如果您使用带有 DENY 操作和 operation.paths 的授权策略,或者 ALLOW 操作和 operation.notPaths,则会受到此漏洞的影响。

在这个版本中,在授权和路由前会删除请求的 URI 片段部分。这可以防止其 URI 中带有片段的请求绕过基于 URI 且没有片段部分的授权策略。

要从缓解措施中的新行为中选择,将保留 URI 的片段部分。您可以将 ServiceMeshControlPlane 配置为保留 URI 片段。

警告

如前文所述,禁用新行为将对路径进行规范化,并被视为不安全。在选择保留 URI 片段之前,确保您已将这些内容放入任何安全策略中。

ServiceMeshControlPlane 修改示例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  techPreview:
    meshConfig:
      defaultConfig:
        proxyMetadata: HTTP_STRIP_FRAGMENT_FROM_PATH_UNSAFE_IF_DISABLED: "false"