1. 背景
最近发现不少文章提到log4j的远程代码执行漏洞会影响Kafka,在此向大家说明Kafka采用的版本是log4j 1.2.17且不受此事件影响
2. 详情
打开GitHub - apache/kafka默认主分支,直接查看gradle目录下的dependencies.gradle文件,搜索log4j就可以发现使用的是1.2.17版本而不是受影响版本log4j2.x版本。
特别说明Kafka3.2.0之后社区将会使用log4j2版本,主要原因是log4j开发团队在2012年5月发布log4j 1.2.17之后就已经停止更新1.x版本,但是Kafka至今依然在使用它。过时的log4j 1.x版本除了CVE-2019-17571(Kafka不受影响)等安全问题外,考虑到大部分用户已经熟悉log4j2(2.x)版本语法,对于1.x版本基本不在使用。如果需要自定义Kafka或Kafka的Connect的日志记录,用户不得不使用旧的配置格式,基于这些原因社区已经在升级使用log4j2,不过相信社区也不会采用受影响版本,具体查看KIP-653: Upgrade log4j to log4j2
image.png
3. 总结
虽然Kafka不会受此事件影响,但是Kafka客户端日志输出需要用户单独引用配置,所以大家还是注意一下是否使用受影响版本的log4j2.x进行日志打印
网友评论