1. 漏洞说明
2021年12月9日,apache log4j2开源日志记录组件发现一个未编号的远程代码执行漏洞。
此漏洞来源于log4j-core-2.*.jar,(简单来说攻击者利用此漏洞可以远程攻击、接管接入互联网运行的java应用),属于危急漏洞
另外新暴露CVE-2021-45105(7.5分) 没防止无限递归 漏洞,目前为止一共包含3个漏洞 按时间顺序为 (CVE-2021-44228【10分】、CVE-2021-45046【9分】、CVE-2021-45105【7.5分】)
分值介绍:
建议重点修复外网可直接访问java的应用。
2. 影响weblogic版本
各个版本对应的jar包
12.2.1.3.0: log4j-1.2.17.jar(包含版本 2 文件)
12.2.1.4.0: log4j-2.11.1.jar
14.1.1.0.0:
log4j-core-2.11.1.jar and log4j-api-2.11.0.jar

注意:
a.
Apache Log4j
version 2在weblogic默认安装与配置中没有使用这些jar
b.
如果客户修改了system classpath(系统类路径),那么会受到漏洞攻击风险
c.
修改了system classpath(系统类路径)的客户可以按上图的补丁打上即可修复漏洞
d.
如何确认是否修改了system classpath(系统类路径CLASSPATH),可以通过ps -ef |grep weblogic查看,或者通过DOMAIN_HOME/servers/[servername]/logs/[servername].out 文件查看
总结:一般的安装配置weblogic不会受影响,除非客户自己修改了系统类路径指向了 oracle_common/modules/thirdparty目录,那么就需要打上补丁或者升级log4j 2

利用此漏洞,可以直接弹出本地的计算器
3. 部署在weblogic的应用排查
检查java应用程序lib目录下是否存在 log4j-core-2.*.0.jar文件,如果*的范围是在影响范围内,那么需要重点关注,并修复。
All versions from 2.0-beta9 to 2.16.0, excluding 2.12.3
2.0>=影响范围 <=2.16 (根据apache最新文档,2.16仍然修复不完整)
4. 整改建议(weblogic产品本身)
4.1 打上WebLogic
Server PSU for Oct 2021+Patch 33691226小补丁
确认步骤:示例12214版本
SAVE_CLASSPATH="${CLASSPATH}:/home/weblogic/wls/Middleware/Oracle_Home/oracle_common/modules/thirdparty/log4j-2.11.1.jar"
使用pmap验证:

当确认引用了log4j-2.*.jar
On Dec 22, Oracle released a new overlay that provides Apache Log4j version 2.17. This provides a fix for CVE-2021-45105 in addition to CVE-2021-44228 and CVE-2021-45046.
最新覆盖补丁全部修复
打上补丁:如果已经打上了2021年10月的季度补丁,那么应用Patch 33691226小补丁,重启server即可解决,一般来说应用2021年10月的季度补丁+ Patch 33691226 小补丁不影响功能使用,稳妥起见请先测试环境验证。
- 补丁 33691226 取代之前提供的补丁 33660731 和 33671996,将 Log4j 升级到2.17 以应对 CVE-2021-45105
- Overlay 补丁将使用相同的文件名更新 Log4j jar,并使用新版本更新清单。
Unix 的示例命令:unzip -p log4j-2.11.1.jar META-INF/MANIFEST.MF
Windows:使用 Zip 实用程序以 .zip 格式查看内容,或运行:
jar -xvf log4j-2.11.1.jar META-INF/MANIFEST.MF
安全扫描程序应检查Manifest.MF文件以检测 CVE 映射的第三方版本。
4.2 删除类解决方案(对CVE-2021-45105无效)
参考5.4解决方案
5. 整改建议(weblogic上部署的应用)
5.1 与5.2 与5.3 采用任何一种都可以修复此漏洞
升级到 Log4j 2.3.1(适用于 Java 6)、2.12.3(适用于 Java 7)或 2.17.0(适用于 Java 8 及更高版本)
5.1 升级版本到2.17.0(jdk8用户或更改版本)
示例:用下面2个jar替换旧版本的log4j 2复制
log4j-api-2.17.0.jar复制
log4j-core-2.17.0.jar复制
下载路径: https://dlcdn.apache.org/logging/log4j/2.17.0/apache-log4j-2.17.0-bin.zip
更改后需重启server生效,一般来说同大版本下更新小版本不影响功能使用,请先测试环境验证。
5.2 升级版本到2.12.3(jdk7用户)
示例:用下面2个jar替换旧版本的log4j 2复制
log4j-api-2.12.3.jar复制
log4j-core-2.12.3.jar复制
下载路径: https://archive.apache.org/dist/logging/log4j/2.12.3/apache-log4j-2.12.3-bin.zip
更改后需重启server生效,一般来说同大版本下更新小版本不影响功能使用,请先测试环境验证。
5.3 升级版本到2.3.1(jdk6用户)
示例:用下面2个jar替换旧版本的log4j 2复制
log4j-api-2.3.1.jar复制
log4j-core-2.3.1.jar复制
下载路径: https://archive.apache.org/dist/logging/log4j/2.3.1/apache-log4j-2.3.1-bin.zip
更改后需重启server生效,一般来说同大版本下更新小版本不影响功能使用,请先测试环境验证。
5.4 删除类解决方案 (对CVE-2021-45105无效)
如果当前版本是:
2.0<=当前版本<= 2.15
通过下面命令来查找版本: find /<ORACLE_HOME_Directory> -name log4j*.jar
例如:
find /home/weblogic/Middleware
-name log4j*.jar
或者使用4.1的pmap来验证
使用下面命令删除 JndiLookup 类
示例:
进入log4j-core-*.jar 包的目录,执行
zip -q -d log4j-core-*.jar
org/apache/logging/log4j/core/lookup/JndiLookup.class
把删除了JndiLookup 类的log4j-core-*.jar 替换原始的
重启后对应的server
删除此类不会对系统功能使用造成影响复制
5.4 备注
在启动jvm中添加如下参数可以修复此漏洞 -Dlog4j2.formatMsgNoLookups=true复制
这种方法修复不完善,官方不再建议使用此方法复制
6. 参考:
New DocumentSecurity Alert CVE-2021-44228 Patch
Availability Document for Oracle Fusion Middleware (Doc ID 2827793.1)
https://logging.apache.org/log4j/2.x/security.html
评论


