Log4j2漏洞和Lombok注解@log4j2

Log4j2 vulnerability and Lombok annotation @log4j2

我们正在使用 spring boot 2.1.5 和 starter parent 作为 pom 依赖项。

Spring 引导使用默认的 logback 进行日志记录,我们没有明确切换到 Log4j2 或更改任何配置。下面是我们的项目依赖树。

我们的项目中有很多 lombok @log4j2 注释。但是,我们在依赖树中发现我们没有任何 log4j2-core jar 依赖项(已发现它容易受到 log4j 最近问题的影响)。

@Log4j2
@Service
@DependsOn("applicationDependencyCheck")

lombok@log4j2是否不依赖log4j2-core.jar。假设这会出现在 Maven 依赖树中是正确的还是我们遗漏了什么。

这是我们的lombok条目-

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

请分享一些见解。

谢谢

在 lombok 文档中,您可以在此处找到它 https://projectlombok.org/api/lombok/extern/log4j/Log4j2.html

@Log4j2 public class LogExample { }

will generate:

public class LogExample { private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class); }

两者 类 都存在于 log4j API jar

这里没有列出已知漏洞https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api

如此处所述https://logging.apache.org/log4j/2.x/log4j-api/index.html log4j api 只是一个接口。

我认为在这种情况下您的代码不依赖于 log4j 核心。您可以仔细检查构建的输出(例如 maven /target 文件夹,war 文件等)

绝对是@Mariusz W. 的回答是最好的。

尽管如此,我注意到您的打印显示了来自 logback-core-1.2.3 [1], which has the CVE-2021-42550 vulnerability [2].

的依赖项

关注那个。