(2021.12.19)我们收到了有关 CVE-2021-45105 的漏洞警示,建议您升级 Log4j2 版本至 2.17.0 及以上以规避此风险。对于主要的受支持服务端,请关注其通知界面以确保新的漏洞已被修复
(2021.12.17)我们收到了有关 CVE-2021-45046 的漏洞警示,原 Log4j2 CVE-2021-44228 漏洞补丁仍有被绕过的风险,建议您升级 Log4j2 版本至 2.16.0 及以上以规避此风险。对于主要的受支持服务端,请关注其通知界面以确保新的漏洞已被修复
影响范围
所有包含 Apache log4j2 2.0-2.16.0 版本依赖库的服务端(Minecraft 1.7.X 至 Minecraft 1.18.X)
BungeeCord 不受影响,因为 BungeeCord 不使用 log4j,但其下游 Waterfall 受到影响,因为 Waterfall 引入了 log4j
https://github.com/apache/logging-log4j2/commit/d82b47c6fae9c15fcb183170394d5f1a01ac02d3
可能的攻击方式
- 任何可能导致服务端 Logger 记录指定关键词的行为,包括在不进入服务器进行任何操作的情况下使用包含关键词游戏 ID 对服务器进行握手
可以导致的后果
- 远程代码执行
来自官方的漏洞修复建议
对于所有受到影响的 Vanilla 服务端
请遵照 Mojang 提供的漏洞修复建议修复漏洞: https://www.mcbbs.net/thread-1283360-1-1.html
对于其他受到影响的服务端
请检下方“服务端核心修复跟踪”部分是否已包含您所使用服务端核心的修补声明,如果包含,请遵照这些服务端核心的要求升级至最新的构建版本;如果未包含,则请依照文末的临时修复方案修补您的服务端核心
服务端核心修复跟踪
- Mohist 声明其 1.12.2,1.16.5 和 1.18.x 分支最新构建已修复此漏洞(1.12.2: https://github.com/MohistMC/Mohist/commit/cf2bdd4639cd75397011338450a317c2fedd2c13 , 1.16.5: https://github.com/MohistMC/Mohist/commit/24cc55acbf04708ecd39f948767f400577b24872 , 1.18.x: https://github.com/MohistMC/Mohist/commit/2a39eb2c009e5b66f3055756b018cc99bf978196)
- CatServer 声明其最新构建(21.12.10)已修复此漏洞(https://github.com/Luohuayu/CatServer/commit/9c1e882fb56ffd56fbb85429c09733dcd512ebec)
- LoliServer 声明其最新构建已修复此漏洞(https://github.com/Loli-Server/LoliServer1.16/commit/f5d646ea6f43ad2ba0760e73241f9a64f4bcf6c4)
- Paper 声明其 1.16.5(#792),1.17.1(#399) 和 1.18(#66) 分支最新构建已修复此漏洞(1.16.5:https://github.com/PaperMC/Paper/commit/cc25d64401ab49663d6b48411d2ac0707f5917b5 , 1.17.1:https://github.com/PaperMC/Paper/commit/244b392f390afa7a4880e2207c7358fe195bd431 , 1.18:https://github.com/PaperMC/Paper/commit/b475c6a683fa34156b964f751985f36a784ca0e0)
- Waterfall 声明其最新构建(#468)已修复此漏洞(https://github.com/PaperMC/Waterfall/commit/f45703fc46c8d8c35fab745181fce6f9f887be5d)
- Velocity 声明其最新构建(3.1.1 #98)已修复此漏洞
- Spigot 发布了一些超出计划的安全更新,以下版本的 Spigot 将得到修复:
 1.8.8 (BuildTools 版本 582-a)
 1.9.4 (BuildTools 版本 849-a)
 1.10.2 (BuildTools 版本 986-a)
 1.11.2 (BuildTools 版本 1251-a)
 1.12.2 (BuildTools 版本 1573-k)
 1.13.2 (BuildTools 版本 2148-d)
 1.14.4 (BuildTools 版本 2502-c)
 1.15.2 (BuildTools 版本 2703-a)
 1.16.5 (BuildTools 版本 3096-a)
 1.17.1 (BuildTools 版本 3284-a)
 1.18.1 (所有未来版本)
 (https://www.spigotmc.org/threads/security-releases-%E2%80%94-1-8-8%E2%80%931-18-1.537204/)
- Arclight 声明其 1.16 和 1.18 分支已修复此漏洞(1.16: https://github.com/IzzelAliz/Arclight/commit/6decf690fed7a851d00dab6ce457eae3ae3b5f62 , 1.18: https://github.com/IzzelAliz/Arclight/commit/1266a3af6dfe61042a73ee6e6b63e04c14dc0beb
- Forge 声明其多个版本已包含针对此次 log4j 漏洞的热更新,更多旧版本分支可能需要更多的工作以修复,推荐的版本:
 1.18-38.0.17
 1.17.1-37.1.1
 1.16.5-36.2.20
 1.15.2-31.2.56
 1.14.4-28.2.24
 1.13.2-25.0.221
 1.12.2-14.23.5.2856
- Fabric 建议使用 1.17 和 1.18 服务端的服主立即更新服务端的 Fabric Loader 为最新版本,或尽可能地更新至 Minecraft 1.18.1,如果不具备这些条件,则请遵照 Mojang 官方博文(见上)对漏洞进行修复
临时修复方案
- 手动替换 log4j2 版本为 2.16.0 可能不适用于某些旧版服务端核心
 log4j-core: https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-core/2.16.0-SNAPSHOT/log4j-core-2.16.0-20211212.034933-1.jar
 log4j-api:
 https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-api/2.16.0-SNAPSHOT/log4j-api-2.16.0-20211212.034933-1.jar
 log4j-slf4j18-impl: https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-slf4j18-impl/2.16.0-SNAPSHOT/log4j-slf4j18-impl-2.16.0-20211212.034933-1.jar
- 禁用 LDAP 端口(TCP/UDP 386/636) 可能被绕过
- 添加 -Dlog4j2.formatMsgNoLookups=trueJava 命令行参数(感谢 @jiongjionger) 仅可用于 log4j2 版本 2.10+
- JavaAgent 解决方案: https://www.mcbbs.net/thread-1283155-1-1.html (感谢 @VeroFess)
- Bukkit Plugin 解决方案: https://www.mcbbs.net/thread-1283195-1-1.html (感谢 @caoli5288)
- Bukkit Plugin 解决方案: https://www.mcbbs.net/thread-1283178-1-1.html (感谢 @yumc)
- Bukkit Plugin 解决方案: https://www.mcbbs.net/thread-1283271-1-1.html (感谢 @Bowser)无需前置,推荐
- Forge Mod 解决方案:https://www.mcbbs.net/thread-1283228-1-1.html (感谢 @Bowser)无需前置,推荐
手把手教你修漏洞™(仅限官方尚未发布修复时的情况)
对于 1.18+ 的所有服务端(Vanilla,Spigot,Paper等)
有校验,不好改,等修复(有兴趣的话可以前往服务端核心中的 META-INF/libraries.list 文件,修改 log4j 相关的三个 jar 路径及其 SHA256 签名,然后将新的 jar 导入 libraries 文件的指定目录)
对于 1.18- 的 非 Paper(及其下游) 服务端
使用压缩软件打开服务端核心和log4j-core,删除前者 org\apache\logging\log4j\core 文件夹,将后者同样路径中的 core 文件夹替换进去;然后删除org\apache\logging\log4j下的其他文件,将 log4j-api 中同名目录的所有文件替换进去即可
对于 1.18- 的 Paper(及其下游) 服务端
使用压缩软件打开 .\cache\patched_X.X.X.jar 和log4j-core,删除前者 org\apache\logging\log4j\core 文件夹,将后者同样路径中的 core 文件夹替换进去;然后删除org\apache\logging\log4j下的其他文件,将 log4j-api 中同名目录的所有文件替换进去;然后修改开服脚本,将服务端 jar 指向 .\cache\patched_X.X.X.jar 而非原来的 paperclip jar
更新
- 12.10 10:45 log4j2 版本 2.15.0-rc1 对该漏洞的修复存在被绕过的可能,请更换至 log4j2 版本 2.15.0-rc2
- 12.10 11:04 更新 Arclight 服务端漏洞修复跟踪
- 12.10 19:50 更新 Forge 漏洞修复跟踪
- 12.11 00:52 新增 “来自官方的漏洞修复建议”
- 12.11 00:59 更新 Fabric 漏洞修复跟踪
- 12.17 18:03 我们收到了有关 CVE-2021-45046 的漏洞警示,原 Log4j2 CVE-2021-44228 漏洞补丁仍有被绕过的风险,建议您升级 Log4j2 版本至 2.16.0 及以上以规避此风险。对于主要的受支持服务端,请关注其通知界面以确保新的漏洞已被修复
来自群组: Server CT
好快,这玩意能发现也是厉害
MintManatee 发表于 2021-12-10 00:42
啥意思 啊在哪里替换
libraries\org\apache\logging\log4j\log4j-core
KCauldron端 没有 libraries 如何修复呢?
两个端口我听都没听过,更没有用过,也没有安全组策略,应该可以高枕无忧吧
这个不懂啊
catserver已经在今晚连夜更新了修复版
如果是小白,那等着大佬修复就好了(躺平
霜天舞冰 发表于 2021-12-10 00:53
libraries\org\apache\logging\log4j\log4j-core
不是,是在服务端里,还是在核心里,我一小白有点懵
好像还没有CVE编号,过几天可能就有了(
CVE-2021-44228
另一个似乎相对快速的修复方法:
删除jar里面的org/apache/logging/og4j/core/lookup/Jndilookup.class
来自afdian@mouse
Paper 1.17.1 #398
已修复,Paper 值得信赖
霜天舞冰 发表于 2021-12-10 01:22
有点疑问。我在我1.12.2catserver核心里并没有看到org\apache\logging\log4j\core这个文件夹,我的log4j文 ...
catserver更新服务端核心就好了
花茶scented 发表于 2021-12-10 01:15
有能力处理的可以按照这上面说的来自行处理
catserver已经在今晚连夜更新了修复版
如果是小白,那等着大佬 ...
catserver这么快?好家伙,那不管了,明天更新
服务端启动脚本添加:-Dlog4j2.formatMsgNoLookups=true,即可。可以置顶下回复
(如果您服务端核心打包的log4j2版本低于2.10.x,该参数无法修复这个问题)
如果您无法替换服务端核心,或者您需要避免玩家客户端被人恶意利用这个Bug产生不良后果,可以安装此服务端插件:
https://www.mcbbs.net/thread-1283269-1-1.html
入侵服务器,再通过服务器入侵客户端,这一晚上是要多多少肉鸡了。
jiongjionger 发表于 2021-12-10 01:32
服务端启动脚本添加:-Dlog4j2.formatMsgNoLookups=true,即可。可以置顶下回复
是直接复制进去就可以了吗,放哪都行吗
xmdhs 发表于 2021-12-10 01:37
客户端也引了这个包的,如果也能利用的话,那就很好玩了
入侵服务器,再通过服务器入侵客户端,这一晚上是 ...
不需要入侵服务器, 客户端只要能收到代码即可
如果整一个恶意的服务器, 引诱玩家进服, 就可以利用这个漏洞.
况且这个漏洞影响范围极其广泛, 1.12.2~1.18均受影响.
今天这群人敢弹计算器, 明天他们敢干什么我都不敢想.png
Zapic 发表于 2021-12-10 02:23
不需要入侵服务器, 客户端只要能收到代码即可
如果整一个恶意的服务器, 引诱玩家进服, 就可以利用这个漏 ...
比如配合windows10的-1day? 细思极恐哎 (溜
现在是0day满天飞时代
感谢修复方案
spigot,purpur,velocity,waterfall都修了
客户端修复方法:
下载log4j-api和log4j-core最新版2.15.1
解压
打开.minecraft\libraries\org\apache\logging\log4j
用这个替换里面log4j-api和log4j-core两个文件夹
然后打开.minecraft\versions\版本号\版本号.json文件
Ctrl+F搜索log4j-
把版本号都替换成2.15.1,保存
重启客户端和启动器就行了
jiongjionger 发表于 2021-12-10 01:32
服务端启动脚本添加:-Dlog4j2.formatMsgNoLookups=true,即可。可以置顶下回复
添加这个就行? 1.12.2 paperspigot
他的结构是 org\apache\commons\compress\archivers\xxxxxx
G0D_ 发表于 2021-12-10 01:32
又一轮新漏洞,还好波及不是很广
要是广了真的很可怕
蟹蒙老鸽 发表于 2021-12-10 08:01
请问在服务器核心yatopia-1.16.5-paperclip-b42里面未能找到路径 org\apache\logging\log4j\core 于其相关 ...
Paper系服务端实际核心文件在.\cache\patched_X.X.X.jar
贺兰兰 发表于 2021-12-10 08:11
Paper系服务端实际核心文件在.\cache\patched_X.X.X.jar
好的那我还是尝试修复一下,谢谢贺兰。
jiongjionger 发表于 2021-12-10 01:32
服务端启动脚本添加:-Dlog4j2.formatMsgNoLookups=true,即可。可以置顶下回复
服务端 1.12.2 Sponge,试了下把参数加在命令的 -jar 前面或者后面都不管用...
Frost-ZX 发表于 2021-12-10 08:52
服务端 1.12.2 Sponge,试了下把参数加在命令的 -jar 前面或者后面都不管用...
- 手动替换 log4j2 为 2.15.0-rc1
log4j-core: https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-core/2.15.1-SNAPSHOT/log4j-core-2.15.1-20211209.094358-2.jar
log4j-api: https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-api/2.15.1-SNAPSHOT/log4j-api-2.15.1-20211209.094358-2.jar
log4j-slf4j18-impl: https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-slf4j18-impl/2.15.1-SNAPSHOT/log4j-slf4j18-impl-2.15.1-20211209.094358-2.jar
- 禁用 LDAP 端口(TCP/UDP 386/636)
1.8-1.12 forge用户安装:https://github.com/Glease/Healer ... .0/Healer-1.1.0.jar
其他版本和API的,有能力的可以去移植,代码反正MIT,原理普遍适用于所有minecraft版本。
有条件依然建议直接更换snapshot版log4j2
苏雅人 发表于 2021-12-10 01:06
bungeecord也是调用的log4j
bc端里面貌似没有log4j
jiongjionger 发表于 2021-12-10 01:32
服务端启动脚本添加:-Dlog4j2.formatMsgNoLookups=true,即可。可以置顶下回复
请问这个。如何确定是否设置成功?
simon3000 发表于 2021-12-10 01:21
好像还没有CVE编号,过几天可能就有了(
卧槽。我就没 apache 的文件夹。怎么办
这个为啥是临时方案,有什么副作用吗