From 3b5edcdb3e0b4996f22e430585b467c80bf1910e Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Fri, 4 Aug 2023 22:19:27 +0200 Subject: [PATCH] Core/Packets: added clientside item level check to reforge opcode handler to prevent packet spoofing --- src/server/game/Handlers/ItemHandler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index da90f40d4f..2936f6edba 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -1498,6 +1498,14 @@ void WorldSession::HandleReforgeItemOpcode(WorldPacket& recvData) return; } + // Packet spoofing check. The client does not allow reforging reforging items below item level 200 + if (item->GetItemLevel() < 200) + { + TC_LOG_ERROR("network", "WORLD: HandleReforgeItemOpcode - Player (Guid: %u Name: %s) tried to reforge an item item (Entry: %u) below item level 200. Probably cheater.", player->GetGUID().GetCounter(), player->GetName().c_str(), item->GetEntry()); + SendReforgeResult(false); + return; + } + if (!reforgeEntry) { if (!item->GetEnchantmentId(REFORGE_ENCHANTMENT_SLOT))