码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 卧槽,Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。


    Log4j2 再爆雷

    Log4j2 这是没完没了了,栈长以为《玩大了!Log4j 2.x 再爆雷。。。》 Log4j 2.16.0 是最终终结版本了,没想到才过多久又爆雷了:

    前两天栈长还说 Log4j 2.16.0 是最安全的版本,没想到这么快就又打脸了,Log4j 2.17.0 横空出世。。。

    又来了。。Log4j2 这是中了新冠的毒?

    这次又爆出来新的 DOS 拒绝服务攻击漏洞。。

    如果你想关注和学习最新、最主流的 Java 技术,可以持续关注公众号Java技术栈,公众号第一时间推送。

    安全漏洞:CVE-2021-45105

    漏洞摘要

    Log4j 团队又获悉了一个重要的安全漏洞 CVE-2021-45105:

    CVE-2021-45105拒绝服务攻击漏洞
    安全等级高
    影响版本Log4j2 2.0-alpha1 到 2.16.0

    该漏洞已在支持 Java 8+ 版本的 Log4j 2.17.0 中得到解决,请尽快升级。

    漏洞详情

    因没有防止自引用 lookups 的不受控制的递归,当日志配置使用带有上下文 Lookup 的非默认模式,例如:

    $${ctx:loginId}

    此时,攻击者可以制作包含递归查找的恶意输入数据,导致 StackOverflowError 错误而终止进程,这也就是 DOS(Denial of Service)拒绝服务攻击。

    从 Log4j 2.17.0 版本开始,只有配置中的 lookup 字符串才允许递归扩展,另外,在任何其他用法中,仅解析最顶级的 lookup,不解析任何嵌套的 lookups。

    解决方案

    1、升级版本

    立马升级到最新版本:Log4j 2.17.0

    最新正式版本下载:

    https://logging.apache.org/log4j/2.x/download.html

    最新 Maven 依赖:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.17.0</version>
    </dependency>
    • 1
    • 2
    • 3
    • 4

    spring-boot-starter-log4j2 尚未更新,可以先覆盖其内置版本:

    <properties>
      <log4j2.version>2.17.0</log4j2.version>
    </properties>
    • 1
    • 2

    Spring Boot 基础就不介绍了,推荐下这个实战教程:

    https://github.com/javastacks/spring-boot-best-practice

    另外,Spring Boot 也在跟进此漏洞,界时新版本可以连带解决,等新版本发布,栈长再给大家解读,公众号Java技术栈第一时间推送,不要走开哦。

    2、临时解决

    如果你不想升级版本,可以考虑使用以下 2 种临时解决方案:

    1)在 PatternLayout 日志配置中,替换上下文 Lookups 中的 ${ctx:loginId} 或者 $${ctx:loginId} 为线程上下文映射模式(%X, %mdc, or %MDC)。

    2)或者,删除对上下文 Lookups 中对 ${ctx:loginId} or $${ctx:loginId} 的引用,它们一般来自应用程序外部,如 HTTP Header 或用户输入。

    总结

    Log4j2 最近是魔怔了??

    一直在解决漏洞,连续发版,从最开始的 Log4j 2.15.0 到现在最新 2.17.0,大大小小的版本已经发了 10 个了,影响的周期已经接近两周了,目前还没看到收尾的迹象。。

    这次应该是爆出来的第 4 个漏洞了:

    • CVE-2021-45105(拒绝服务攻击漏洞,最新!)
    • CVE-2021-45046(远程代码执行漏洞)
    • CVE-2021-44228(远程代码执行漏洞)
    • 信息泄漏漏洞(安全公司 Praetorian 发现)

    后面 3 个在 Log4j 2.16.0 中已经得到解决,最新的请升级 2.17.0!!!

    这是不是最后一次版本不得而知,总之这个版本是必须升级的,或检查配置,使用临时解决方案,后续进展栈长也会第一时间跟进,关注公众号Java技术栈,公众号第一时间推送。

    这也不能怪 Log4j2,详细可阅读:

    Log4j2 维护者发声:没有工资,还要挨骂!!(我真是醉了!)

    所以,用开源就要接受开源可能带来的影响,也不能责备开源人,都是成年人了,用不用是自己的选择,哪款产品没有漏洞呢?哪怕是商用产品。

    版权声明: 本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,抄袭者一律举报+投诉,并保留追究其法律责任的权利。

    近期热文推荐:

    1.1,000+ 道 Java面试题及答案整理(2021最新版)

    2.劲爆!Java 协程要来了。。。

    3.玩大了!Log4j 2.x 再爆雷。。。

    4.Spring Boot 2.6 正式发布,一大波新特性。。

    5.《Java开发手册(嵩山版)》最新发布,速速下载!

    觉得不错,别忘了随手点赞+转发哦!

  • 相关阅读:
    大厂linux运维面试题库(二)
    docker容器启动后修改或添加端口
    结合手工注入编写一个SQL盲注脚本——以SQLi-Labs less16为例
    heic批量转jpg文件
    Springboot+vue的学生成绩管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
    vue2+element-ui批量导入方法并判断上传的文件是否为xls或xlsx
    常用数据集下载网站
    TensorFlow 2.9的零零碎碎(六)-模型训练和评价
    Idea远程debug操作步骤(连接服务器)
    webpack原理 - 5分钟了解ModuleGraph
  • 原文地址:https://blog.csdn.net/youanyyou/article/details/122033713
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号