【问题标题】:Is Spring Cloud Stream affected by CVE-2022-22963 (spring cloud function)Spring Cloud Stream 是否受 CVE-2022-22963 影响(spring cloud 功能)
【发布时间】:2022-07-26 01:38:53
【问题描述】:

最近发现了 CVE-2022-22963 - spring cloud function 漏洞,团队在这里提供了一个简单的修复:cve-report-published-for-spring-cloud-function

我们通过以下依赖项从spring-cloud-stream:3.0.4 获得spring-cloud-function-context:3.0.6(我们的spring.boot.version 是2.2.6):

  • spring-cloud-services-starter-circuit-breaker:2.2.6
  • spring-cloud-bus:2.2.6(包括 amqp/kafka)
  • spring-cloud-starter-stream-kafka:3.0.4
  • spring-cloud-starter-stream-rabbit:3.0.4

我们没有直接使用 RoutingFunction,但担心我上面提到的通过 spring-cloud-stream 带来 spring-cloud-function-context/core 的库可能会使用 RoutigFunction 并将我们暴露在漏洞中。

在此 CVE 上,我们首选的缓解措施是什么?
我们可以升级到 spring-cloud-function 3.1.7 版本而不与我们的 spring 版本兼容吗?

【问题讨论】:

    标签: spring-boot spring-cloud-stream spring-cloud-function spring-cloud-circuitbreaker


    【解决方案1】:

    Spring Cloud FunctionSpring Cloud Stream 3.0.x 版本不支持 OSS/商业。即使对于 3.1.x 版本,它们也不支持 OSS,从提供的链接中的图表可以看出。路由功能问题在 Spring Cloud Function 3.2.33.1.7 版本中得到解决。我们的建议是手动升级到模块 spring-cloud-function-context 的其中一个版本。

    【讨论】:

    • 如果我们不能立即升级我们的 spring 云流,仍然建议将 spring-cloud-function-context 升级到版本 3.2.3 / 3.1.7 并继续使用 spring-cloud-stream 3.0.x ?
    • 是的,您可以尝试这种方法。不确定是否会出现兼容性问题,但值得一试。
    • 另外,在 spring-cloud-stream 的上下文中,利用上述 CVE 的可能性几乎是不可能的。
    • @sobychacko 我尝试按照您的建议将spring-cloud-function-context 仅升级到 3.1.7。它开始抛出错误NoClassDefFoundError: org/springframework/cloud/function/core/FunctionInvocationHelper。然后我将spring-cloud-function-core 也升级到了 3.1.7。现在它抛出错误ClassNotFoundException: org.springframework.cloud.function.context.catalog.BeanFactoryAwareFunctionRegistry$FunctionInvocationWrapper。我正在使用 spring-boot 2.3.7 和 spring 5.2.20。这里有什么建议吗?
    【解决方案2】:

    首先,spring-cloud-stream 不受您提到的 CVE 的影响。只有使用 spring-cloud-function-web 模块才会影响 spring-cloud-function。

    至于您在上一条评论 (NCDFE) 中描述的问题,只有在您使用旧版本且不兼容的 Stream 和 Functions 时才会发生这种情况。

    所以。 . .,正如 Soby 所说,3.1 已停产,因此您仍然需要升级。
    您可以通过更新spring-cloud BOM来升级标准的spring-boot方式

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>2021.0.3</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    

    或者您可以手动更改单个依赖项。

    • Spring Cloud 函数 - 3.2.6
    • Spring Cloud Stream - 3.2.4

    【讨论】:

      猜你喜欢
      • 2020-10-24
      • 2022-11-23
      • 2020-10-23
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2017-03-26
      相关资源
      最近更新 更多