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已发布!看看解决了什么问题?的详细内容,更多请关注代码网其它相关文章!
发表评论