01. 概要
Apache Log4j2 存在一处远程代码执行漏洞,该漏洞影响范围极广,漏洞危害极大。估计昨天所有的 Java 工程师都在熬夜修改这个漏洞。
Apache Log4j2 是一个基于 Java 的日志记录工具。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。
在引入 Apache Log4j2 处理日志时,会对用户输入的内容进行一些特殊的处理,攻击者可以构造特殊的请求,触发远程代码执行。也就是说攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器最高权限。
02. 漏洞评级
Apache Log4j 远程代码执行漏洞威胁级别:【高危】
03. 漏洞影响范围
影响版本:Apache Log4j 2.x
已知受影响的应用及组件:
srping-boot-strater-log4j2/Apache Solr/Apache Flink/Apache Druid
spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink等
如何检测组件系统版本, 打开 pom.xml 文件,查看 Apache Log4j2 的 version 字段:
04. 安全建议
1、建议用户尽快升级Apache Log4j2所有相关应用到最新的 log4j-2.15.0-rc2 版本,地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2、其他缓解措施:
(1) 修改jvm参数 -Dlog4j2.formatMsgNoLookups=true
(2) 修改配置log4j2.formatMsgNoLookups=True
(3) 将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
(4)禁止使用Apache Log4j2服务器外连,升级JDK 11.0.1 8u191 7u201 6u211或更高版本。