1、演示说明:
最近在项目中遇到用户扫描es时发现Apache Log4j2远程代码执行漏洞(CVE-2021-44228),该漏洞具体原理不再赘述,此处分享解决过程。
2、演示环境:
(1)系统版本:
# cat /etc/redhat-release
(2)JDK版本:
# java -version
(3)es版本:
# ./elasticsearch -V
3、下载命令行扫描工具:
下载地址:https://github.com/logpresso/CVE-2021-44228-Scanner
软件包名称:logpresso-log4j2-scan-3.0.1-linux.tar.gz
4、命令行扫描工具使用:
# cd /tmp
# tar -xf logpresso-log4j2-scan-3.0.1-linux.tar.gz
# ./log4j2-scan /elasticsearch/
[*] Found CVE-2021-44228 (log4j 2.x) vulnerability in /elasticsearch/lib/log4j-core-2.9.1.jar, log4j 2.9.1
说明:存在Apache Log4j2远程代码执行漏洞(CVE-2021-44228)。
5、两种解决方案:
(1)升级es版本:此处演示的es版本为5.6.8,升级到6.8.22+或7.16.2+版本,但项目中的sdk可能不适配,有一定风险。
(2)升级log4j2版本:此处演示的log4j2版本为2.9.1,升级到2.17.0+版本。
说明:此处使用解决方案2,用到的log4j2版本为2.17.2。
6、具体操作步骤:
(1)停止es
(2)到es目录下的lib目录,将原有log4j-1.2-api-2.9.1.jar、log4j-api-2.9.1.jar、log4j-core-2.9.1.jar备份
# cd /elasticsearch/lib
# mv log4j-1.2-api-2.9.1.jar{,.bak}
# mv log4j-api-2.9.1.jar{,.bak}
# mv log4j-core-2.9.1.jar{,.bak}
# ls -lh log4j-*
(3)下载log4j-1.2-api-2.17.2.jar、log4j-api-2.17.2.jar、log4j-core-2.17.2.jar,全复制至lib目录下
# ls /tmp/log4j-*
# mv /tmp/log4j-* .
# ls -lh log4j-*
(4)启动es
7、命令行工具扫描:
# cd /tmp
# ./log4j2-scan /elasticsearch/
说明:已经没有之前的提示了,漏洞修复完成。
标签:jar,2.9,代码执行,版本,Apache,44228,log4j2,log4j,es From: https://blog.51cto.com/qiuyue/6306705