【漏洞 描述

近日,监测到 Apache 官方发布了 Log4j 的多个漏洞通告,分别为 Apache log4j JMSSink 反序列化代码执行漏洞( CVE-2022-23302 ,Apache log4j JDBCAppender SQL 注入漏洞( CVE-2022-23305 ), Apache log4j Chainsaw 反序列化代码执行漏洞( CVE-2022-23307 )。

1.CVE-2022-23302 Apache Log4j JMSSink 反序列化代码执行漏洞,根据官方描述,当攻击者对 Log4j 配置具有写访问权限时,不受信任的数据或如果配置引用了攻击者有权访问的 LDAP 服务。攻击者可以提供一个 TopicConnectionFactoryBindingName 配置,导致 JMSSink 执行 JNDI 请求,这与 CVE-2021-4104 远程执行代码的方式类似。

请注意,此问题仅在专门配置为使用 JMSSink 时影响 Log4j 1.x Log4j 默认配置时不受此漏洞影响。

2.CVE-2022-23305 Apache Log4j JDBCAppenderSQL 注入漏洞,根据官方描述, Log4j 1.2.x 中的 JDBCAppender 接受 SQL 语句作为要插入的值是转换器的配置参数, PatternLayout 消息转换器未对输入的值进行过滤,允许攻击者通过在输入中输入精心制作的字符串来操纵 SQL ,实现非法查询。

请注意,此问题仅在专门配置为使用 JDBCAppender 时会影响 Log4j 1.x Log4j 默认配置时不受此漏洞影响。

3.CVE-2022-23307 Chainsaw v2 是由 Log4j 开发社区成员编写的与 Log4j 配套的应用程序,是一个基于 GUI 的日志查看器,该漏洞由于 Apache Log4j 1.2.x 中的 Chainsaw 存在反序列化代码执行漏洞,可能造成任意代码执行。

请注意, Log4j 默认情况下未配置 Chainsaw 的使用,因此默认配置下不受此漏洞影响。

严重等级:高危

【影响范围】

Apache Log4j 1.x

Apache Chainsaw < 2.1.0

可能的受影响应用及组件(包括但不限于)如下: Apache Groovy Spring Boot Logging

更多组件可参考如下链接: https://mvnrepository.com/artifact/log4j/log4j/usages

不受影响版本:

Apache Log4j 2.x

【修复建议】

官方升级:

官方已于 2015 年停止对 Log4j 1.x 版本进行维护,请相关用户升级到 Log4j 2 以获得安全修复,迁移方式可参考官方文档: https://logging.apache.org/log4j/2.x/manual/migration.html

1 、鉴于 Log4j2 日前被爆出过多个高危漏洞,建议升级到以下的安全版本进行防护:

1 Apache Log4j 2.17.1-rc1 (与 2.17.1 稳定版相同)

2 Apache Log4j 2.12.4-rc1 (与 2.12.4 稳定版相同)

3 Apache Log4j 2.3.2-rc1 (与 2.3.2 稳定版相同)

注: 2.17.1 支持 Java 8 及以上, 2.12.4 支持 Java 7 2.3.2 支持 Java 6

官方下载链接: https://logging.apache.org/log4j/2.x/download.html https://github.com/apache/logging-log4j2/tags

2 、对于 Apache log4j Chainsaw 反序列化代码执行漏洞( CVE-2022-23307 ),也可通过升级 Apache Chainsaw 至最新版的方式进行修复,官方下载链接: https://logging.apache.org/chainsaw/2.x/download.html

临时防护措施:

若相关用户暂时无法进行升级操作,可先用下列措施对上述漏洞进行临时缓解:

1 Apache log4j JMSSink 反序列化代码执行漏洞( CVE-2022-23302 临时防护:

1 )注释掉或删除 Log4j 配置中的 JMSSink

2 )使用下列命令,从 log4j jar 包中删除 JMSSink 类文件:

zip -q -d log4j-*.jar org/apache/log4j/net/JMSSink.class

3 )限制系统用户对应用程序平台的访问,以防止攻击者修改 Log4j 的配置。

2 Apache log4j JDBCAppender SQL 注入漏洞( CVE-2022-23305 临时防护:

Log4j 的配置文件中删除 JDBCAppender 的使用

3 Apache log4j Chainsaw 反序列化代码执行漏洞( CVE-2022-23307 临时防护:

不要配置 Chainsaw 来读取序列化的日志事件。可使用其他的接收器,例如 XMLSocketReceiver