我的世界修复Apache Log4j2漏洞教程

警告:Apache Log4j2 远程代码执行漏洞(CVE-2021-44228)十分严重。

此漏洞可能导致计算机资料安全受到严重威胁,请务必重视

漏洞缘由

开源Java日志框架Apache Log4j2被曝出存在高危远程代码执行漏洞。由于Java版的大部分版本使用了使用了该日志框架,绝大多数Minecraft玩家都可能因该漏洞而遭受攻击。

漏洞危害

攻击者可利用该漏洞在未经授权的情况下在玩家电脑上执行任意命令,其中不乏下载病毒、占用系统资源、窃取隐私等恶意命令。由于该漏洞存在范围广、利用门槛极低,会给玩家带来极高的安全隐患。

影响范围

注:此处只列举了被影响的Minecraft游戏版本。实际上所有使用了此日志框架的程序都受此漏洞影响。

Java版1.7.2(13w39a)至Java版1.18(1.18.1-rc2)的客户端与服务端,包括:

  • 原版客户端与服务端
  • 安装了模组的客户端与服务端
  • Paper、Spigot等大多数第三方服务端
  • 其他符合条件的Java版客户端与服务端

以下版本不受影响:

  • 基岩版(所有版本)
  • Java版1.6.4(13w38c)及以下版本
  • Java版1.18.1(1.18.1-rc3)及以上版本
  • BungeeCord服务端

检验方式

  • 可以检查.minecraft/assets/log_configs下的文件是否与Mojang提供的最新版本一致。

修复方式

原版客户端

官方启动器
  • 关闭游戏、重新启动启动器。启动游戏时,已修复的版本会自动下载。
第三方启动器
  • 关闭游戏,将启动器更新到最新版本,并留意更新日志中是否说明修复了此漏洞。如果没有,请参照#临时防御方案修复。
  • PCL、HMCL、BakaXL等第三方启动器均已针对此漏洞进行了紧急更新,如果你正在使用这些启动器,请尽快升级到最新版本。

模组加载器

Fabric
  • 将Fabric Loader更新到0.12.9及以上版本。
Forge
  • 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
  • 1.12.2与1.16.5版本可尝试安装此修复mod来进行修复。
其他模组加载器
  • 由于多数其他模组加载器已停更,它们都已不再安全,请修复启动器,或参照#临时防御方案修复。

原版服务端

1.18
  • 关闭服务端,升级到1.18.1,或者按照1.17的方法修复。
1.17
  • 关闭服务端,在启动脚本中添加JVM参数:-Dlog4j2.formatMsgNoLookups=true
1.12至1.16.5
  • 关闭服务端,下载log4j2_112-116.xml到服务器的工作路径。然后在启动脚本中加入JVM参数:-Dlog4j.configurationFile=log4j2_112-116.xml
1.7至1.11.2
  • 关闭服务端,下载log4j2_17-111.xml到服务器的工作路径。然后在启动脚本中加入JVM参数:-Dlog4j.configurationFile=log4j2_17-111.xml

第三方服务端

Paper、WaterFall、Velocity、Spigot
  • 这些服务端均已发布紧急更新,请关闭服务端,更新到最新版本。
BungeeCord
  • 不受影响,无需操作。
其他服务端
  • 请先关闭服务端。将服务端更新到最新版本,并留意更新日志中是否说明修复了此漏洞。如果没有,请参照#临时防御方案修复。

临时防御方案

以下方案仅适用于使用log4j 2.10.0及以上版本的客户端或服务端。Java版1.17-pre1及以上的版本使用log4j 2.14.1,故可以使用以下方法。

  • 添加JVM参数:-Dlog4j2.formatMsgNoLookups=true
  • 将系统环境变量LOG4J_FORMAT_MSG_NO_LOOKUPS设置为true

13w39a至17w14a(使用log4j 2.0-beta9)以及17w15a至21w20a(使用log4j 2.8.1)不能使用以上方法。

来源:中文minecraftwiki


已有 1 条评论
  1. 不错

    2021年12月20日 23:281 回复