登录  /  注册
首页 > 运维 > Apache > 正文

Apache Log4j 2.17.0已发布!看看解决了什么问题?

藏色散人
发布: 2021-12-20 11:09:54
转载
2583人浏览过

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

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

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

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

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

  • 否则,在配置中删除对 ${ctx:loginId} 或 ${ctx:loginId} 等 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

以上就是Apache Log4j 2.17.0已发布!看看解决了什么问题?的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:OSC开源社区网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号