Apache Log4j 被曝第 3 个漏洞:不受控递归 | Apache 官方已发布 2.17 版本修复

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Apache Log4j 被曝第 3 个漏洞:不受控递归 | Apache 官方已发布 2.17 版本修复

自 12 月 10 日起,Apache Log4j2 已接连曝出多个漏洞,并在全球范围内造成了影响。刚刚过去的 12 月 18 日,Apache Log4j 又被曝出第三个漏洞: CVE-2021-45105 —— Apache Log4j 2.0-alpha1 到 2.16.0 的版本无法防止自引用查找的不受控递归(Apache 官方已发布 2.17.0 版本修复)。

image.png

(相关阅读:

漏洞详情

漏洞描述:

Apache 官方表示,对于 Apache Log4j 2.17.0 之前的版本而言,当日志记录配置使用具有上下文查找的非默认模式布局时(PatternLayout 与 Context Lookup:例如,$${ctx:loginId})就很容易受到漏洞的影响。成功利用此漏洞后,具有线程上下文映射(MDC)输入数据控制权的攻击者就可能会伪造包含递归查找的恶意输入数据,导致 StackOverflower 错误,从而终止进程,也被称为DOS(拒绝服务)攻击。

据悉,最新漏洞是由 Akamai Technologies 的 Hideki Okamoto 和一名匿名漏洞研究人员发现的。Apache 注意到,只有 Log4j 核心 JAR 文件受到 此次CVE-2021-45105 漏洞的影响。

漏洞影响:

攻击者成功利用此漏洞或导致拒绝服务(DoS)。

漏洞评分详细信息:

CVE:CVE-2021-45105

评分:7.5(高)

向量:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Apache 官方已发布 2.17 版本修复

好在,12 月 19 日,该漏洞 CVE-2021-45105 Apache Log4j 已在官方最新发布的 Log4j 2.17.0 (Java 8)版本中得到了修复。

缓解措施包括:应用 2.17.0 版本修补程序,并在日志配置的PatternLayout 中使用线程上下文映射模式(%X,%mdc或%mdc)替换上下文查找如 ${ctx:loginId} 或 $$${ctx:loginId}。Apache 还建议删除对${ctx:loginId} 或 $${ctx:loginId} 等配置中的上下文查找的引用,这些引用来自应用程序外部的源,如 HTTP 头部或用户输入。

image.png

Apache 官方 2.17.0 版本链接:

https://logging.apache.org/lo...

也就是说,从 2.17.0 版本(对于 Java 8)开始,仅配置中的查找字符串被递归扩展;在任何其他用法中,仅解析顶级查找,不解析任何嵌套查找。

自 12 月 10 日凌晨 Apache Log4j2 首个“高危”远程代码执行漏洞被发现以来,官方已经紧急发布了 Apache Log4j 2.15.0 正式版,解决了该漏洞。

但随后的几天,又被发现在 Apache Log4j 2.15.0 版本上存在敏感数据泄露的漏洞,可用于从受影响的服务器下载数据,随后官方并建议用户尽快升级到 2.16.0。

此次,又发现了 Apache Log4j 2.0-alpha1 到 2.16.0 版本不受控制的递归漏洞,已是 Apache Log4j 被曝出的第三个漏洞了。

关于 Apache Log4j2

Apache Log4j2 最初是由 Ceki Gülcü 编写,是 Apache 软件基金会 Apache 日志服务项目的一部分。Log4j 是几种 Java 日志框架之一。而 Apache Log4j2 是对 Log4j 的升级,相比其前身 Log4j1 有了更显著的改进,同时修复了 Logback 架构中的一些固有问题。

image.png

通过 Apache Log4j2 框架,开发者可通过定义每一条日志信息的级别,来控制日志生成过程。

目前该日志框架已被广泛用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。
|
26天前
|
前端开发 Java API
Apache Seata(incubating) 首个版本重磅发布!
2.1.0 是 Seata 进入 Apache 基金会的第一个 Release Version。此次发布将 io.seata 包名更改为 org.apache.seata。除了按原有的 Roadmap 技术演进外,2.1.0 进行了大量兼容性工作,实现了 API、数据和协议的兼容。用户无需修改原有的 API 和配置,即可实现到 Apache 版本的平滑升级。
Apache Seata(incubating) 首个版本重磅发布!
|
28天前
|
存储 SQL 缓存
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
|
2月前
|
SQL 存储 缓存
Apache Doris 2.1.6 版本正式发布
2.1.6 版本在 Lakehouse、异步物化视图、半结构化数据管理持续升级改进,同时在查询优化器、执行引擎、存储管理、数据导入与导出以及权限管理等方面完成了若干修复
|
4月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
|
4月前
|
SQL JSON Apache
Apache Doris 2.1.5 版本正式发布
在湖仓一体、多表物化视图、半结构化数据分析等方面进行了全面更新及改进,同时在倒排索引、查询优化器、查询引擎、存储管理等 10 余方向上完成了若干问题修复
|
3月前
|
缓存 Oracle Java
JDK8到JDK22版本升级的新特性问题之在JDK17中,日志的刷新如何操作
JDK8到JDK22版本升级的新特性问题之在JDK17中,日志的刷新如何操作
|
5月前
|
关系型数据库 MySQL BI
Apache Doris 2.0.12 版本正式发布
Apache Doris 2.0.12发布,含99项改进和修复。
|
安全 应用服务中间件 Apache
|
21天前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
506 13
Apache Flink 2.0-preview released

推荐镜像

更多