崩溃漏洞修复

崩溃漏洞修复

这个模组修复了在Minecraft中发现的一堆崩溃漏洞。

管理

CrashExploitFixer

该模组目前修复了从 1.14.4 到最新版本的所有受影响 Minecraft 版本中的三个不同漏洞!

实体选择器 NBT 栈溢出

Minecraft 1.14.4 至撰写本文时最新版本存在一个栈溢出漏洞,攻击者可以通过在实体选择器中滥用深度嵌套的 NBT 数据来使服务器崩溃,导致 TagParser 中的递归解析耗尽 JVM 栈空间。虽然 Minecraft 1.21.1 阻止了无权限玩家通过实体选择器触发该问题,但管理员和创造模式玩家仍然可以在未修补的服务器上复现崩溃。值得注意的是,PaperMC 早在几个月前就发现并修补了底层解析器问题。

来自 haykam 的博客文章:haykam.com

过度的网络对象分配

一个影响 Minecraft 网络的拒绝服务漏洞,允许已认证玩家通过发送恶意数据包使服务器崩溃,这些数据包在通过 FriendlyByteBuf.readCollectionFriendlyByteBuf.readMap 或相关方法进行集合反序列化时触发了过度的内存分配。虽然该问题可通过 Fabric API 数据包以及可能跨不同加载器的许多模组数据包被利用,但 NeoForge 和 Fabric 已为其最活跃的版本修补了该问题(NeoForge:1.21.1 和 26.1,Fabric:1.20.1、1.21.1、1.21.11、26.1、26.2)。CrashExploitFixer 为所有版本的 Forge、NeoForge 和 Fabric 修补了该问题,并与它们的修复兼容。

非常感谢 Paul 私下报告了此问题

来自 NeoForge 的博客文章:neoforged.net

可翻译组件扩展

一个影响 Minecraft 1.16 至 1.21.4 的拒绝服务漏洞,允许攻击者构造递归扩展的文本组件,这些组件在解析、扁平化或诸如 Component#getString() 等调用过程中可能膨胀为巨大的字符串,导致严重的内存耗尽以及客户端或服务器软崩溃。较新的研究表明,在原版 1.20.5–1.21.4 中,特殊构造的悬停事件负载可以在无需提升权限的情况下触发该问题。PaperMC 多年来一直防范此类漏洞,而模组环境由于在网络数据包中广泛使用 FriendlyByteBuf#readComponent() 及相关组件反序列化路径,仍然特别容易受到攻击。

非常感谢 Paul 私下报告了此问题