本文最后更新于 533 天前,其中的信息可能已经有所发展或是发生改变。
本脚本只适用于 Log4J > 2.10
该脚本为跨平台脚本,可在任意 Windows 平台或已安装 Bash 的 Linux 平台上执行。
(除 Alpine 外,大部分 Linux 发行版都已默认安装 bash)
GitHub 仓库
Windows 使用
下载上方的压缩包,双击执行内部的 fix_windows.bat
即可修补。
(设置可能不会立刻生效,建议重启电脑以立刻生效)
Linux 使用
wget -O fix_linux.sh https://raw.fastgit.org/Ghost-chu/CVE-2021-44228-quickfix-script/master/fix_linux.sh
sudo chmod +x fix_linux.sh
sudo ./fix_linux.sh
(设置可能不会立刻生效,建议重启操作系统以立刻生效)
管理员特权模式
Windows 脚本会自动尝试获取管理员权限,Linux 需要手动使用 sudo
命令提权(示例命令已提权)。
本脚本可在 用户域(Windows管理员/Linux root账户) 和 系统域 (Windows普通用户/Linux 普通用户账户)执行。
但只有管理员提权模式下可以对整个系统进行修补,否则只能修补执行此脚本的用户环境。
工作原理
本脚本只适用于 Log4J > 2.10
使用系统环境变量 LOG4J_FORMAT_MSG_NO_LOOKUPS
解决该漏洞,以便于不易升级、修改的生产环境进行问题临时缓解措施。
如果业务特殊需要,请升级您的 Log4J2 版本后可以使用 -Dlog4j2.formatMsgNoLookups=false
JVM Flag 覆写该补丁做出的修改。
Minecraft 特供
仅对 Minecraft 1.17.1 + 起效。
对于服务器,请添加 -Dlog4j2.formatMsgNoLookups=true
到启动参数中以修复问题。
对于客户端/玩家,请添加 -Dlog4j2.formatMsgNoLookups=true
到游戏 JVM 参数中以修复问题。
如果您认为您的玩家没有能力在启动器中完成复杂的操作,您可以将上面的脚本分发给玩家双击执行使用系统环境变量方式修复。