本帖最后由 贺兰兰 于 2022-8-24 00:06 编辑
影响范围
所有在除 Windows 11 操作系统以外的所有 Windows 操作系统(包括所有家用系统和服务器系统)上运行的所有 Minecraft 服务端(包括纯净,插件和模组服务端),尤其是 Minecraft 1.7.6(不含)以前版本的 Minecraft 服务端
可能的攻击方式
包括但不限于通过特殊玩家 ID 进入服务器
可以导致的后果
服务器崩溃
修复方案
安装这个插件:https://www.mcbbs.net/thread-1378004-1-1.html
由于该漏洞性质较为恶劣,暂不对公众公布完整攻击原理,直到该漏洞已被修复或该漏洞已被大部分服主知晓。
来自群组: Server CT
影响范围
所有在除 Windows 11 操作系统以外的所有 Windows 操作系统(包括所有家用系统和服务器系统)上运行的所有 Minecraft 服务端(包括纯净,插件和模组服务端),尤其是 Minecraft 1.7.6(不含)以前版本的 Minecraft 服务端
可能的攻击方式
包括但不限于通过特殊玩家 ID 进入服务器
可以导致的后果
服务器崩溃
修复方案
安装这个插件:https://www.mcbbs.net/thread-1378004-1-1.html
由于该漏洞性质较为恶劣,暂不对公众公布完整攻击原理,直到该漏洞已被修复或该漏洞已被大部分服主知晓。
来自群组: Server CT
本帖最后由 贺兰兰 于 2022-9-2 07:24 编辑
Windows 中存在一些设备命名空间,这些命名空间在作为文件名(不包括文件拓展名)时会导致 Windows 文件流将其当作设备流处理传输和读取数据(实际上并没有提供数据),从而导致 Java 进程卡死进而令服务端崩溃。
这些设备命名空间是:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9。实际测试中,只有 CON 在不同设备上可以稳定复现问题(因为 CON 代表 Console Input,在所有设备中均存在,而 COM1 等串口上并不一定存在设备)
对于 Windows 11 操作系统,该问题已得到解决,因此无须特别注意。
为了测试该漏洞是否在您的操作系统上可用,请打开 CMD,输入 type con.yml 查看命令行界面是否卡住(未出现后续回显)
Minecraft 从 1.7.6 开始采用 UUID 而不是玩家 ID 作为玩家数据存储方式,这时,在所有第三方插件和模组均使用 UUID 作为文件名存储玩家 ID 时没有问题;但是,我们不能确保所有第三方插件和模组也这么做了 —— 换言之,存在风险。所以最好的解决方案是让所有服主都注意此类问题。但是事实上您会发现,所有可能通过用户输入内容作为文件名存储的通道都会有此类风险,因此:
对于第三方插件/服主开发者,我们恳请您在支持 UUID 的服务端(1.7.6 及以上)中不要在使用玩家 ID 作为文件名存储数据,而是改用 UUID,并且,请不要直接使用用户输入内容直接作为文件名存储数据。
除此之外,您也可以通过简单的直接封禁这些游戏 ID 来粗暴的解决这个问题,但仍需警惕来自其他来源的用户输入导致的同类问题
Windows 中存在一些设备命名空间,这些命名空间在作为文件名(不包括文件拓展名)时会导致 Windows 文件流将其当作设备流处理传输和读取数据(实际上并没有提供数据),从而导致 Java 进程卡死进而令服务端崩溃。
这些设备命名空间是:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9。实际测试中,只有 CON 在不同设备上可以稳定复现问题(因为 CON 代表 Console Input,在所有设备中均存在,而 COM1 等串口上并不一定存在设备)
对于 Windows 11 操作系统,该问题已得到解决,因此无须特别注意。
为了测试该漏洞是否在您的操作系统上可用,请打开 CMD,输入 type con.yml 查看命令行界面是否卡住(未出现后续回显)
Minecraft 从 1.7.6 开始采用 UUID 而不是玩家 ID 作为玩家数据存储方式,这时,在所有第三方插件和模组均使用 UUID 作为文件名存储玩家 ID 时没有问题;但是,我们不能确保所有第三方插件和模组也这么做了 —— 换言之,存在风险。所以最好的解决方案是让所有服主都注意此类问题。但是事实上您会发现,所有可能通过用户输入内容作为文件名存储的通道都会有此类风险,因此:
对于第三方插件/服主开发者,我们恳请您在支持 UUID 的服务端(1.7.6 及以上)中不要在使用玩家 ID 作为文件名存储数据,而是改用 UUID,并且,请不要直接使用用户输入内容直接作为文件名存储数据。
除此之外,您也可以通过简单的直接封禁这些游戏 ID 来粗暴的解决这个问题,但仍需警惕来自其他来源的用户输入导致的同类问题
贺兰giegie又为我们这些小白点明了一条路
贺兰giegie又为我们这些小白点明了一条路
贺兰giegie又为我们这些小白点明了一条路
哇!这影响好大啊,幸好我的服务器不出名。qwq
所以说为什么不推进全服务端系开源化呢?
开源玩家表示在吃瓜
12000分
恐怕我这辈子都看不到这个bug了
恐怕我这辈子都看不到这个bug了

可以的6666
希望越来越多的buG被发现并修复
贺兰giegie又为我们这些小白点明了一条路
那EssentialsX的setwarp会寄吗?
还可以哈哈哈