From 7ac0606c9b2ce33393139f7db612f61504b60a0f Mon Sep 17 00:00:00 2001 From: bash-c Date: Tue, 14 Oct 2025 15:46:28 +0800 Subject: [PATCH] dcerpc: TCPTransport.recv: break on empty recv to avoid infinite loop --- impacket/dcerpc/v5/transport.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/impacket/dcerpc/v5/transport.py b/impacket/dcerpc/v5/transport.py index 4e16f15036..bb02860477 100644 --- a/impacket/dcerpc/v5/transport.py +++ b/impacket/dcerpc/v5/transport.py @@ -380,8 +380,13 @@ def send(self,data, forceWriteAndx = 0, forceRecv = 0): def recv(self, forceRecv = 0, count = 0): if count: buffer = b'' + chunk = b'' while len(buffer) < count: - buffer += self.__socket.recv(count-len(buffer)) + chunk = self.__socket.recv(count-len(buffer)) + if chunk != b'': + buffer += chunk + else: + break else: buffer = self.__socket.recv(8192) return buffer