关于Apache Log4j2 远程代码执行漏洞通风险提示:
【漏洞公告】
近日,监测到 Apache Log4j2存在远程代码执行漏洞,攻击者通过构造恶意的代码即可利用该漏洞,从而导致服务器权限丢失。目前已知有6000+开源框架使用该组件,几乎中国境内涉及到业务端日志存储都有可能存在该问题。
【漏洞描述】
Log4j是Apache的一个开源Java日志框架,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
Apache Log4j2是 Log4j的升级版本,据分析,该漏洞产生的原因在于Log4j在记录日志的过程中会对日志内容进行判断,如果内容中包含了${,则Log4j会认为此字符属于可替换的变量,并且Log4j支持JNDI远程加载的方式替换变量值。此漏洞的危害等级很大,只要是调用了Log4j的日志记录功能,并且有用户可控的输入,就可能导致JNDI注入。
漏洞等级为高危。
【影响范围】
经验证 2.15.0-rc1 版本存在绕过,实际受影响范围如下:
Apache Log4j 2.x < 2.15.0-rc2 版本均受影响;
Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等均受影响。
【修复建议】
(1)排查应用是否引入了Apache Log4j2 Jar包,若存在依赖引入,则可能存在漏洞影响。请尽快升级Apache Log4j2所有相关应用到最新的log4j-2.15.0-rc2 版本,地址:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
(2)升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink