CVE-2025-62784InventoryGui是一个用于Bukkit/Spigot插件的箱子GUI创建库,广泛应用于Minecraft服务器插件开发中。该库允许开发者轻松创建和管理自定义的箱子界面(GUI),并支持存储元素(GuiStorageElement)功能。2025年10月披露的安全漏洞影响1.6.5之前的所有版本,漏洞根源在于当服务器启用实验性Bundle物品功能时,使用GuiStorageElement且允许玩家取出物品的GUI存在逻辑缺陷。攻击者可以通过特定的操作序列从GUI存储元素中重复取出物品,实现物品复制。这种物品复制漏洞在多人游戏中具有严重的经济影响,可能破坏游戏平衡,导致游戏内经济体系崩溃。漏洞已于1.6.5版本修复,开发者通过增加物品操作验证机制解决了该问题。
InventoryGui库的GuiStorageElement组件负责管理GUI中的物品存储和提取操作。在正常情况下,当玩家从GUI中取出物品时,系统应该正确更新存储状态并减少物品数量。然而,在1.6.5之前的版本中,当Minecraft服务器启用实验性Bundle物品功能时,物品提取逻辑存在竞态条件或状态同步问题。Bundle是Minecraft 1.17引入的实验性物品,允许玩家存储和堆叠多个不同类型的小物品。当玩家尝试从GuiStorageElement中取出Bundle物品时,由于Bundle物品的特殊堆叠和分组机制,系统未能正确追踪物品的实际提取数量。具体表现为:玩家可以执行取出操作,但存储状态未正确更新,导致重复操作可以提取多个物品副本。攻击者通常需要使用特定的物品组合或操作顺序来触发该漏洞,例如先将物品放入Bundle,再通过GUI操作实现复制。该漏洞利用不需要任何特殊权限,任何有GUI访问权限的玩家均可尝试利用。