# 002_Apache Log4j2 远程代码执行漏洞(CVE-2021-44228、CVE-2021-45105)说明及解决方案
- 漏洞说明
此漏洞是log4j-core-2.x.jar中的org/apache/logging/log4j/core/lookup/JndiLookup.class类存在JNDI注入漏洞,当程序将用户输入的数据记录日志的时候,可利用此漏洞,在目标机器上执行任意代码。
- 漏洞检测工具
https://log4j2-detector.chaitin.cn/
- 漏洞修复方案
# 方案一:升级到 log4j-2.17.0版本 (推荐)
下载地址: https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.17.0/
# 方案二、生产环境修复:
https://github.com/zhangyoufu/log4j2-without-jndi 由长亭工程师提供的删除了 JndiLookup.class 的对应版本直接替换重启即可。(如果不放心网上下载的版本,也可以自己手动解压删除:zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class 删除jar包里的这个漏洞相关的class,然后重启服务即可)。
# 方案三、临时规避方案
(任选一种,但是注意,只有 >=2.10.0 版本才可以用,老版本不支持这个选项)
- 在 jvm 参数中添加 -Dlog4j2.formatMsgNoLookups=true
- 系统环境变量中将LOG4J_FORMAT_MSG_NO_LOOKUPS 设置为 true
- 创建 log4j2.component.properties 文件,文件中增加配置 log4j2.formatMsgNoLookups=true
涉及产品及解决方案见下方列表(使用方案一验证通过,采用官方推荐的log4j-2.17.0版本):
| 产品 | 是否涉及 | 解决方案 |
| Platform7.6.6 | 使用log4j-core-2.13.3,存在此漏洞 | 1、停止EOS Server。 2、备份%platform766安装路径%/apache-tomcat-8.5.57/webapps/default、governor、workspace三个应用/WEB-INF/lib/log4j-1.2-api-2.13.3.jar、 log4j-api-2.13.3.jar、log4j-core-2.13.3.jar。 3、删除log4j-1.2-api-2.13.3.jar、 log4j-api-2.13.3.jar、log4j-core-2.13.3.jar三个jar,替换为官方下载的log4j-2.17.0版本。 4、重启EOS Server。 |
| ESB8 | ESB governor:log4j-api-2.7、log4j-core-2.7、log4j-1.2.17(不存在漏洞,不替换) ESB server : log4j-api-2.7、log4j-core-2.7、log4j-1.2.17(不存在漏洞,不替换) elasticsearch6.6.1:log4j-1.2-api-2.11.1、log4j-api-2.11.1、log4j-core-2.11.1 | ESB governor替换说明: 1、停止ESB governor; 2、备份%Primeton_ESB_8.0_governor安装路径%/libs/log4j-api-2.7、log4j-core-2.7两个jar。 3、删除%Primeton_ESB_8.0_governor安装路径%/libs/log4j-api-2.7、log4j-core-2.7两个jar,替换为官方下载的log4j-2.17.0 版本。 4、重启ESB governor。 ESB server替换说明: 1、停止ESB Server; 2、备份%Primeton_ESB_8.0_Server安装路径%/server/lib/log4j-api-2.7、log4j-core-2.7两个jar。 3、删除%Primeton_ESB_8.0_Server安装路径%/server/lib/log4j-api-2.7、log4j-core-2.7两个jar,替换为官方下载的log4j-2.17.0版本。 4、重启ESB Server。 elasticsearch6.6.1替换说明: 1、停止elasticsearch6.6.1。 2、备份/usr/local/elasticsearch-6.6.1/lib/log4j-1.2-api-2.11.1、log4j-api-2.11.1、log4j-core-2.11.1三个jar。 3、删除/usr/local/elasticsearch-6.6.1/lib/log4j-1.2-api-2.11.1、log4j-api-2.11.1、log4j-core-2.11.1三个jar,替换为官方下载的log4j-2.17.0 版本。 4、重启elasticsearch6.6.1。 |
| ESB6.7 | ESB governor : log4j-api-2.7、log4j-core-2.7、log4j-slf4j-impl-2.7 、log4j-1.2.17(不存在漏洞,不替换) ESB server : 未使用log4j-core 2.x ,不存在此漏洞 ESB ssm:未使用log4j-core 2.x ,不存在此漏洞 | ESB governor替换说明: 1、停止ESB governor; 2、备份%Primeton_ESB_8.0_governor安装路径%/apache-tomcat-8.5.27/webapps/governor/WEB-INF/lib/log4j-api-2.7、log4j-core-2.7、log4j-slf4j-impl-2.7三个jar; 3、删除%Primeton_ESB_8.0_governor安装路径%/apache-tomcat-8.5.27/webapps/governor/WEB-INF/lib/log4j-api-2.7、log4j-core-2.7、log4j-slf4j-impl-2.7三个jar,替换为官方下载的log4j-2.17.0 版本,只替换log4j-api-2.17,log4j-slf4j-impl-2.17两个,log4j-core直接删除不需要替换; 4、重启ESB governor。 |
| EOS8.1/MS5 | elasticsearch6.6.1:log4j-1.2-api-2.11.1、log4j-api-2.11.1、log4j-core-2.11.1 其余组件未使用log4j-core 2.x ,不存在此漏洞 | elasticsearch6.6.1替换说明: 1、停止elasticsearch6.6.1。 2、备份/usr/local/elasticsearch-6.6.1/lib/log4j-1.2-api-2.11.1、log4j-api-2.11.1、log4j-core-2.11.1三个jar。 3、删除/usr/local/elasticsearch-6.6.1/lib/log4j-1.2-api-2.11.1、log4j-api-2.11.1、log4j-core-2.11.1三个jar,替换为官方下载的log4j-2.17.0版本。 4、重启elasticsearch6.6.1。 |
| BFT7 | BFTClient使用log4j-core 2.x ,存在此漏洞 | 1、停止BFTClient。 2、备份%Primeton_BFT_7.0.0_Client安装路径%/apache-tomcat-8.5.42/webapps/client/WEB-INF/lib/log4j-api-2.10.0.jar、log4j-slf4j-impl-2.10.0.jar、log4j-core-2.10.0.jar、log4j-jul-2.10.0.jar四个jar。 3、删除%Primeton_BFT_7.0.0_Client安装路径%/apache-tomcat-8.5.42/webapps/client/WEB-INF/lib/log4j-api-2.10.0.jar、log4j-slf4j-impl-2.10.0.jar、log4j-core-2.10.0.jar、log4j-jul-2.10.0.jar四个jar,替换为官方下载的log4j-2.17.0 版本。 4、重启BFTClient。 |
| DSP7 | Primeton_DSP_7.0_DataReleas使用了log4j-core-2.11.1.jar、log4j-jul-2.11.1.jar、log4j-api-2.11.1.jar、 log4j-slf4j-impl-2.11.1.jar,存在此漏洞; 其余组件未使用log4j-core 2.x ,不存在此漏洞 | 1、停止DataRelease。 2、备份%Primeton_DSP_7.0_DataReleas安装路径%/apache-tomcat-8.5.51/webapps/datarelease/WEB-INF/lib/log4j-core-2.11.1.jar、log4j-jul-2.11.1.jar、log4j-api-2.11.1.jar、log4j-slf4j-impl-2.11.1.jar 四个jar。 3、删除%Primeton_DSP_7.0_DataReleas安装路径%/apache-tomcat-8.5.51/webapps/datarelease/WEB-INF/lib/log4j-core-2.11.1.jar、log4j-jul-2.11.1.jar、log4j-api-2.11.1.jar、log4j-slf4j-impl-2.11.1.jar 四个jar,替换为官方下载的log4j-2.17.0 版本。 4、重启DataRelease。 |
| DAMP7 | DAMP_ONLINECONFIG使用了log4j-core-2.13.0.jar,存在此漏洞; 其余组件未使用log4j-core 2.x ,不存在此漏洞 | 1、停止onlineConfig; 2、备份%onlineConfig安装路径/apache-tomcat-8.5.29/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.0.jar; 3、删除%onlineConfig安装路径/apache-tomcat-8.5.29/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.0.jar, 替换为官方下载的log4j-core-2.17.0.jar; 4、重启onlineConfig; |
| Platform7.6.5及之前版本 | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| BPS7.5及之前版本 | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| DI7.0及之前版本 | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| Metacube7及之前版本 | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| PAS | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| ESB6.6及之前版本 | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| Devops | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| MDM7 | 未使用log4j-core 2.x ,不存在此漏洞 | / |
| e-Coding | 未使用log4j-core 2.x ,不存在此漏洞 | / |