
Healer
为Minecraft Forge 1.7.10 - 1.12.2 修补CVE-2021-44228
修补安全漏洞CVE-2021-44228(又称Log4Shell),适用于Minecraft Forge 1.7.10 - 1.12.2。方法是通过反射从Interpolator中移除JNDI查找,并替换默认的LoggerContextFactory,以捕获此模组加载后的所有LoggerContext。关于补丁具体技术细节,请参阅源代码。
目前仅适用于Minecraft 1.12及更早版本。已在1.7.10和1.12.2上测试。
兼容性
如果有任何模组尝试以编程方式调整日志配置,它们会因全面修补而失败。为解决此问题,healer会尽量推迟修补时机,直到这些模组完成其编辑。
截至目前,healer已内置支持以下模组:
- ForgeEssentials
如果其他模组崩溃并出现类似 ClassCastException: cannot cast XXXXXXXX to org.apache.logging.log4j.core.impl.Log4jContextFactory 的日志行,则说明您与这些模组之一发生了冲突。
为解决此问题,请在我的问题跟踪器上反馈,或在JVM启动参数中添加 -Dnet.glease.healer.patch_stage=XXXX,其中XXXX可以是 PRELOAD, PREINIT, INIT, POSTINIT 中的任意值(按时间顺序,最早为第一个)。通常PREINIT足以缓解问题,POSTINIT应能解决所有问题。
给普通玩家
- 如果您的启动器已修补此漏洞,则无需此模组。
- 如果您应用了Mojang的修复,则无需此模组。
- 如果您有适用于1.7的FoamFix,则无需此模组。
- 如果您使用了其他修复模组,请询问其原作者是否能“捕获其模组加载后的所有LoggerContext”,如果可以,则无需此模组。否则,用此模组替换该模组,或使用已打补丁的启动器,例如MultiMC。
给整合包作者
- 如果您的客户端包面向Minecraft 1.7~1.12.2,建议包含此模组。这能保护那些尚未意识到此漏洞且可能使用未修补启动器的用户。
- 如果您同时分发服务器包,且面向Minecraft 1.7~1.12.2,在应用了Mojang修复后,添加此模组并非必需。然而,由于许多人不会使用服务器包附带的StartServer.bat(或类似文件),他们很可能不会使用Mojang修复的log4j2.xml。从技术上讲,您不应分发修改过的minecraft_server-1.7.10.jar,因此添加此jar是确保用户获得修复的最直接方式。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。