Hi, we have a customer running SAP dispatcher/workers on a system on which we run code tracking flow events using WinDivert 2.2.0. The WinDivert handle is opened with no filter. The aforementioned crashes happened about once a day while our code was running. Here is the bugcheck output of one such crash:
I have dumped the flow_s struct from the memory region pointed to by Parameter[0], as well as the context_s struct pointed to within it. The flow is as follows (apologies for the crude formatting):
WINDIVERT_CONTEXT_SIZE reports as 792 bytes on my AMD64 system, so that is the size of the memory region I wrote to context.mem. I haven't further analyzed that memory. Please find both regions attached: flow_context.zip
I am inexperienced at analyzing memory dumps, so this is the extent of information I was able to obtain thus far. I will gladly perform further analyses on request and can provide additional partial memory extracts if necessary. A complete kernel-mode memory dump is available, but I cannot provide it publicly for obvious privacy reasons.
Since nothing about the flow_s struct seems off to me at first glance, I am not even sure if this is actually a bug in WinDivert or something that's rather caused by SAP's disp+work.exe? Any insight would be much appreciated. Thanks in advance!
Hi, we have a customer running SAP dispatcher/workers on a system on which we run code tracking flow events using WinDivert 2.2.0. The WinDivert handle is opened with no filter. The aforementioned crashes happened about once a day while our code was running. Here is the bugcheck output of one such crash:
The call stack suggests that the crash happens when calling
ExFreePoolWithTag
fromwindivert_free
inwindivert_flow_delete_notify
(https://github.com/basil00/Divert/blob/v2.2.0/sys/windivert.c#L4243).Using WinDbg and the CodeMachine Kernel Debugger Extension DLL, I checked the parameters with which
ExFreePoolWithTag
gets called:I have dumped the
flow_s
struct from the memory region pointed to byParameter[0]
, as well as thecontext_s
struct pointed to within it. The flow is as follows (apologies for the crude formatting):WINDIVERT_CONTEXT_SIZE
reports as 792 bytes on my AMD64 system, so that is the size of the memory region I wrote tocontext.mem
. I haven't further analyzed that memory. Please find both regions attached: flow_context.zipI am inexperienced at analyzing memory dumps, so this is the extent of information I was able to obtain thus far. I will gladly perform further analyses on request and can provide additional partial memory extracts if necessary. A complete kernel-mode memory dump is available, but I cannot provide it publicly for obvious privacy reasons.
Since nothing about the
flow_s
struct seems off to me at first glance, I am not even sure if this is actually a bug in WinDivert or something that's rather caused by SAP'sdisp+work.exe
? Any insight would be much appreciated. Thanks in advance!