Add validation for packer size in ProcessCommandTasks

This commit is contained in:
Xre0uS
2025-07-05 02:41:08 +08:00
parent aeea68be5a
commit 24eb7d007c
@@ -15,6 +15,14 @@ void Commander::ProcessCommandTasks(BYTE* recv, ULONG recvSize, Packer* outPacke
*inPacker = Packer( recv, recvSize );
ULONG packerSize = inPacker->Unpack32();
// Check if the packer size is valid
if (packerSize > recvSize - 4)
{
MemFreeLocal((LPVOID*)&inPacker, sizeof(Packer));
return;
}
while ( packerSize + 4 > inPacker->datasize())
{
ULONG CommandId = inPacker->Unpack32();