一、漏洞说明:
-
Apache Log4j2是一个基于Java的日志记录工具,是Log4j的升级,在其前身Log4j 1.x基础上提供了Logback中可用的很多优化,同时修复了Logback架构中的一些问题,是目前最优秀的Java日志框架之一。该日志框架被大量用于业务系统开发,用来记录日志信息。开发者可能会将用户输入造成的错误信息写入日志中。此次 Apache Log4j2 漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成远程代码执行。
-
临时解决方案
-
设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”
-
设置“log4j2.formatMsgNoLookups=True”
-
系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
-
关闭对应应用的网络外连,禁止主动外连 二、整改步骤
-
(一)查看项目是否引用了log4j2 漏洞包
- 在依赖包中搜索,查看是否引用了log4j2如图。
2. 打开pom.xml文件,右键选择Diagrams->Show Dependencies 如图
- 在打开的依赖结构图中,Ctrl+F打开搜索框,搜索log4j,选择log4j-to-slf4j,定位相关依赖。如定位不准确,可以多次定位。
(二)删除依赖
- 在依赖上点击右键,选择Exclude,删除该依赖。
- 返回pom.xml可以看到已经添加了相关exclusion。
3.点击右上角Load Maven Changes按钮使依赖生效。
4.依赖更新完成后在依赖包中或依赖结构图中搜索log4j2。确认是否已经将log4j2完全排除。如果还有其他依赖,重复执行Exclude操作。
(三)添加新版本依赖
添加新版本log4j2依赖。
如果原有依赖中包含log4j-core依赖,同时添加