【发布时间】:2022-01-16 23:16:08
【问题描述】:
我们听说log4j-core.jar 很容易受到攻击。
我们注意到spring-cloud-starter-sleuth(2.2.2.RELEASE 版)依赖带来了一个使用log4j-core.jar(2.13.0 版)和provided 范围的依赖,如下所示:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
<scope>provided</scope>
</dependency>
带来log4j依赖的确切jar是:
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-context-log4j2</artifactId>
<version>5.10.1</version>
我们没有在我们的代码或配置中使用 Zipkin,只是使用了 Sleuth。
我们的代码是否易受攻击?
【问题讨论】:
-
不,它是一个提供的依赖意味着它不采用那个版本。因此,除非您实际上包含该版本(或 2.15 以外的任何版本),否则您很容易受到攻击。
-
@M.Deinum - 如果没有提供,它会在运行时失败吗?
-
没有。如果它现在有效,那么它就有效。
provided依赖不是部署的一部分(仅编译和运行时)。因此,如果这不在您的可部署(您的 jar 或战争)中,那也不是问题。 -
@M.Deinum 那么如果我在提供的范围内使用带有易受攻击的 log4j 的侦探的 spring logback 怎么办,这是否意味着我没有什么好害怕的?
-
不,因为只有 API 而不是 log4j-core 存在漏洞。这里也有详细解释spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot
标签: java spring-boot log4j spring-cloud-sleuth