(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
入侵服务器,再通过服务器入侵客户端,这一晚上是要多多少肉鸡了。