Out-of-band RST injectors fundamentally face race conditions because they cannot modify in-flight packets: a data packet may pass the injector's observation point before the forged RST is generated, producing detectable out-of-sequence RSTs (RST_SEQ_DATA) or post-RST data packets (DATA_SEQ_RST). A passive detector exploiting these two race conditions, plus a third signature (RST_SEQ_CHANGE) from multi-packet injectors, reliably identifies injected RSTs across four network datasets totaling 30.2M TCP flows.
From 2009-weaver-detecting — Detecting Forged TCP Reset Packets
· §5
· 2009
· Network and Distributed System Security
Implications
Circumvention clients receiving RST packets can test for RST_SEQ_DATA or DATA_SEQ_RST conditions to confirm a RST is injected rather than legitimate, suppressing it rather than tearing down the session.
Proxy implementations should perform application-layer RST validation (sequence coherence check) rather than relying on OS TCP stacks, which accept any in-window RST regardless of injection origin.