Apache Log4j 2.17.0 发布,解决第三个 DoS 漏洞
发布时间:
2021-12-21
文章来源:
作者
发布人:
wlaq
浏览次数:

发布时间:2021-12-21文章来源:网络与信息中心作者: 发布人:wlaq 浏览次数:1000


Apache Log4j 2.17.0 版本已正式发布,解决了被发现的第三个安全漏洞 CVE-2021-45105。


Apache Log4j2 版本 2.0-alpha1 到 2.16.0 没有防止 self-referential 查找的不受控制的递归。当日志配置使用非默认的 Pattern Layout 与 Context Lookup(例如,$$)时,控制线程上下文映射 (MDC) 输入数据的攻击者可以制作包含递归查找的恶意输入数据,导致 StackOverflowError,从而终止进程。这也称为 DoS 攻击。


从 2.17.0 版本开始(针对 Java 8),只有配置中的查找字符串才会被递归扩展;在任何其他用法中,仅解析顶层查找,不解析任何嵌套查找。


在以前的版本中,可以通过确保你的日志记录配置执行以下操作来缓解此问题:


在日志记录配置的 PatternLayout 中,用 Thread Context Map 模式(%X、%mdc 或 %MDC)替换 $ 或 $$ 等 Context Lookups。


否则,在配置中删除对 $ 或 $ 等 Context Lookups 的引用;它们源自应用程序外部的源,如 HTTP headers 或 user input.。


2.17.0 版本的具体更新内容包括有:


修复字符串替换递归。修复 LOG4J2-3230


将 JNDI 仅限于 java 协议。默认情况下,JNDI 将保持禁用状态。将 JNDI 启用属性从“log4j2.enableJndi”重命名为“log4j2.enableJndiLookup”、“log4j2.enableJndiJms”和“log4j2.enableJndiContextSelector”。修复 LOG4J2-3242


JNDI 仅限于 java 协议。默认情况下,JNDI 将保持禁用状态。启用属性已重命名为“log4j2.enableJndiJava”。修复 LOG4J2-3242


不要将 log4j-api-java9 和 log4j-core-java9 声明为依赖项,因为这会导致 Maven enforcer 插件出现问题。修复 LOG4J2-3241


解析属性文件过滤器时的 PropertiesConfiguration.parseAppenderFilters NPE。修复 LOG4J2-3247


Syslog Appender 的 Log4j 1.2 bridge 默认为端口 512 而不是 514。修复 LOG4J2-3249


Log4j 1.2 bridge API 将 Syslog 协议硬编码为 TCP。修复 LOG4J2-3237


Copyright 2013 中国海洋大学网络与信息中心
电话:0532-66782160
邮箱:wlzx@ouc.edu.cn
地址:青岛市松岭路238号,中国海洋大学 图书馆B楼
邮编:266000