Minecraft: Bedrock Edition(又称 Bedrock Server)的官方服务器存在一个网络层漏洞,攻击者可借此发起 DoS 攻击。
CVE-2022-23884 Mojang Bedrock Dedicated Server 1.16.0-1.18.12 受 PurchaseReceiptPacket::_read(数据包反序列化器)导致的大循环和服务器崩溃影响。
CVE-2022-23884 影响 Bedrock Server 1.16.0-1.18.12。
该漏洞由 PurchaseReceiptPacket::_read(数据包反序列化器)引起。
//pseudo-code
u32 Num = readUnsignedVarInt();
for ( i = 0; i < (unsigned int)Num; ++i )
{
...
}
攻击者可以选择特殊的 Num(例如 0xffffffff)。过大的数值会导致大量循环(阻塞主线程)并使服务器崩溃。
免责声明:PoC 仅用于测试您的服务器是否存在漏洞。提供者不承担任何责任,也不对因使用这些程序而导致的任何滥用或损害负责。请自行承担风险。
CVE-2022-23884:python replay.py <IP> <Port> purchase.pkt
最新的 Bedrock Server(1.18.12.01)不包含针对 CVE-2022-23884 的补丁。存在第三方补丁。
针对 CVE-2022-23884 的补丁:
你可以挂钩 PurchaseReceiptPacket::_read 并返回 false。
(该数据包仅用于合作服务器,因此 BDS 无需进行任何处理,只需返回 false)
LiteLoader 中的这个文件修复了 CVE-2022-23884。
更新到 LiteLoader 2.0.5 或更高版本以修复此问题。