log4j2 lookup漏洞修复方法
2021.12.10凌晨,Apache Log4j远程代码执行漏洞细节被公开,参考链接:https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/,也可以在cve网站上查询到:https://www.cve.org/CVERecord?id=CVE-2021-44228,当前漏洞适用的版本:Log4j 2.x <= 2.15.0-rc1,仅在Log4j 2中存在此漏洞,Log4j 1.x版本不受影响,下面举了几个例子,对于常见的开源软件或者引用该库的程序都可以按照下面的方法修复。
1.ElasticSearch
存在的版本:6.x、7.x、8.x,首先是建议开启用户名密码访问,提升安全性。
编辑ElasticSearch安装目录下的conf/jvm.options,添加jvm参数:
-Dlog4j2.formatMsgNoLookups=true
然后保存并退出文件,重启ElasticSearch服务生效,每个节点都要修改并重启。

也可以下载最新的2.15.0的Log4j jar包替换掉elasticsearch lib下面的老版本Log4j jar包,然后重启ElasticSearch服务生效,具体的链接会在后面给出。
2.Kafka
版本:1.x、2.x
编辑kafka安装目录下的启动脚本:bin/kafka-server-start.sh,找到KAFKA_LOG4J_OPTS环境变量位置,编辑变量追加jvm参数:
# 修改export的值
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties -Dlog4j2.formatMsgNoLookups=true"

然后保存之后,重启kafka broker生效,即先使用停止脚本停掉服务再使用启动脚本启动服务,集群所有节点都需要操作。
3.Flink
版本2.11版本及以上,2.11以下的版本不受影响,然后编辑安装目录下的conf/flink-conf.yaml添加下面的配置:
env.java.opts: -Dlog4j2.formatMsgNoLookups=true
然后保存配置并退出,每个节点都要修改,最后停止flink集群后再启动即可生效。
4.maven项目
maven项目中关于log4j的引用可以直接升级到最新版本,pom配置如下:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency>
官方已经将补丁合并至2.15.0稳定版,所以保存并更新maven依赖后,重新编译项目:
mvn package
生成新的jar包即可修复bug。
5.自己开发的java代码
下载新版本的log4j依赖包,然后使用log4j-api-2.15.0.jar和log4j-core-2.15.0.jar替换掉现有项目中的依赖并重新编译即可,下载链接在最后。
6.线上正在运行的独立java程序
对于正在独立运行的java程序可以按照下面的方法关闭。
6.1.添加jvm参数
和上面类似,比如:
java -cp .:./lib/*:./etc/log4j2.xml: -Dlog4j2.formatMsgNoLookups=true com.aaa.bbb.MainClass
6.2.添加配置文件
创建并编辑配置文件log4j2.component.properties内容为:
log4j2.formatMsgNoLookups=true
其实和jvm参数一样,只是这里用了配置文件来单独存放,这样保存配置后在启动java程序时添加到classpath中:
java -cp .:./lib/*:./etc/log4j2.xml:./etc/log4j2.component.properties: com.aaa.bbb.MainClass
6.3.导入环境变量
运行程序前导入环境变量:
export FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS=true
可以将变量配置到/etc/profile或者~/.bashrc中每次进入shell都会生效,然后再正常启动java程序即可。
其实上面的ElasticSearch、Kafka、Flink直接导入这个环境变量也是可以的,log4j相关的模块会自动读取该变量并进行设置。
总结来说,上面这些方法无非就是修改jvm参数或者设置相关的变量来关闭lookup的功能,从而切断远程代码执行,或者是直接升级官方最新的Log4j的版本来修复问题。
Log4j程序包下载:https://dlcdn.apache.org/logging/log4j/2.15.0/apache-log4j-2.15.0-bin.tar.gz
log4j2 lookup漏洞修复方法的更多相关文章
- Mysql漏洞修复方法思路及注意事项
[系统环境] 系统环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga) + 5.7.16 MySQL Community Server ...
- java中xxe漏洞修复方法
java中禁止外部实体引用的设置方法不止一种,这样就导致有些开发者修复的时候采用的错误的方法 之所以写这篇文章是有原因的!最早是有朋友在群里发了如下一个pdf, 而当时已经是2019年1月末了,应该不 ...
- 关于阿里云ECS Centos 5/6/7 Linux Glibc库严重安全漏洞修复方法
日前Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235.黑客可以通过gethostbyname系列函数实现远程代码执行,获取 ...
- Linux Bash严重漏洞修复方法
日前Linux官方内置Bash中新发现一个非常严重安全漏洞,黑客可以利用该Bash漏洞完全控制目标系统并发起攻击,为了避免Linux服务器受影响,就要尽快修补该漏洞了.(漏洞参考https://acc ...
- 常见web漏洞修复方法
方法如下: 漏洞修复.(输入过滤,输出转义) 1.在连接数据库时,在接收参数后进行转义,$id = mysql_real_escape_string($id); 2.在网页源码中在接收参数后可用htm ...
- Zabbix 2.2.x, 3.0.x SQL注射漏洞修复方法
1.漏洞测试 在您的zabbix的地址后面加上如下url: jsrpc.php?type=&method=screen.get×tamp=&pageFile=hist ...
- Jsp万能密码漏洞修复例子
更多详细内容请查看:http://www.111cn.net/jsp/Java/58610.htm 如果网站出现这种“万能密码”漏洞该怎么办呢 'or'='or' 漏洞修复 方法有很多在这里介绍两种, ...
- 关于ECSHOP中sql注入漏洞修复
标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...
- dedecms5.7最新漏洞修复
最近发现织梦cms被挂马现象频繁,解决好好几个网站的问题,但是过不了多久,就又被攻击了,即使更改系统及ftp密码,也没有起到防御的作用,最后怀疑cms本身漏洞,于是采用工具扫描了一下,才发现问题的严重 ...
- struts2 最新S2-016-S2-017漏洞通杀struts2所有版本及修复方法
详情查看http://zone.wooyun.org/content/5159 官方漏洞说明 http://struts.apache.org/release/2.3.x/docs/s2-016.ht ...
随机推荐
- git commit大文件后无法删除或撤回
可以使用版本回退的功能 先用git log 查看历史提交 用 git reset --soft 上面的编号 回退到历史提交的版本 再重新commit即可
- 基于STM32F407MAC与DP83848实现以太网通讯二(DP83848硬件配置以及寄存器)
参考内容:DP83848数据表 一.PHY DP83848功能模块图 DP83848的硬件模块主要为: MII/RMII/SNI INTERFACES:用于与MAC数据传输的MII/RMII/SNI接 ...
- java中webSocket发送图片文件数据非常慢
一.问题由来 目前在开发的这个小程序中有一个功能需要和Unity客户端进行互动操作,互动的大致流程为在微信小程序中点击一个操作,发送一个HTTP请求, Java后台收到这个请求后,会给Unity客户端 ...
- 摆脱鼠标系列 - vscode 搜索 自定义快捷键 F1 - 然后F4 搜索 Alt+Shift+回车 跳转到搜索列表 选好后回车进入文件
摆脱鼠标系列 - vscode 搜索 自定义快捷键 F1 搜索 Alt+Shift+回车 跳转到搜索列表 选好后回车进入文件 F1的设置可能在其他贴子了 最新特大好消息 F4 是搜索完的跳转 等于F1 ...
- 视野修炼-技术周刊第76期 | Rolldown 开源
欢迎来到第 76 期的[视野修炼 - 技术周刊],下面是本期的精选内容简介 强烈推荐 Rolldown 开源 - Rollup 的锈化版 前端调试工具超全汇总 开源工具&技术资讯 OhMyLi ...
- 记录--巧用 overflow-scroll 实现丝滑轮播图
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言: 近期我在项目中就接到了一个完成轮播图组件的需求.最开始我也像大家一样,直接选择使用了知名的开源项目 "Swiper&qu ...
- 记录--极致舒适的Vue可编辑表格
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 使用ElementPlus的Table啥都好,就是没有可编辑表格!!! 既然UI库不支持,那我们实现一个可编辑表格是很难的事么?难么?不难 ...
- 鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
一.RelativeContainer 1.概述 ArkUI组件中的RelativeContainer是一个相对定位的容器,可以用来将子组件按照相对位置布局. 在RelativeContainer中, ...
- 分析性能差的sql
--EXECUTIONS 所有子游标的执行这条语句次数 --DISK_READS 所有子游标运行这条语句导致的读磁盘次数 --BUFFER_GETS 所有子游标运行这条语句导致的读内存次数 --Hit ...
- 在使用若依分离版时遇到富文本不显示html解决
<el-table-column label="公告内容" align="center" prop="content"> < ...