mirror of
https://github.com/zeek/zeek.git
synced 2025-10-04 15:48:19 +00:00
Fix potential crash TCP headers were captured incompletely.
Test case provided by Jonathan Ganz. BIT-1425 #close
This commit is contained in:
parent
d88e6b3f1a
commit
1b9ee38e69
4 changed files with 33 additions and 1 deletions
|
@ -442,7 +442,7 @@ const struct tcphdr* TCP_Analyzer::ExtractTCP_Header(const u_char*& data,
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( tcp_hdr_len > uint32(len) ||
|
if ( tcp_hdr_len > uint32(len) ||
|
||||||
sizeof(struct tcphdr) > uint32(caplen) )
|
tcp_hdr_len > uint32(caplen) )
|
||||||
{
|
{
|
||||||
// This can happen even with the above test, due to TCP
|
// This can happen even with the above test, due to TCP
|
||||||
// options.
|
// options.
|
||||||
|
|
23
testing/btest/Baseline/core.tcp.truncated-header/out
Normal file
23
testing/btest/Baseline/core.tcp.truncated-header/out
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
1103139821.635001, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139821.833528, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139821.841126, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.039902, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.040151, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.040254, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.040878, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.240529, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.240632, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.247627, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.450278, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.450381, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.453253, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.65178, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.651883, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.652756, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.882264, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.933982, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.934084, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.934209, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139822.934214, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139823.145731, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
||||||
|
1103139823.145958, [orig_h=128.3.26.249, orig_p=25/tcp, resp_h=201.186.157.67, resp_p=60827/tcp]
|
BIN
testing/btest/Traces/tcp/truncated-header.pcap
Normal file
BIN
testing/btest/Traces/tcp/truncated-header.pcap
Normal file
Binary file not shown.
9
testing/btest/core/tcp/truncated-header.bro
Normal file
9
testing/btest/core/tcp/truncated-header.bro
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# @TEST-EXEC: bro -b -r $TRACES/tcp/truncated-header.pcap %INPUT >out
|
||||||
|
# @TEST-EXEC: btest-diff out
|
||||||
|
|
||||||
|
event tcp_packet(c: connection, is_orig: bool, flags: string, seq: count, ack: count, len: count, payload: string)
|
||||||
|
{
|
||||||
|
# Just having this handler used to crash Bro on this trace.
|
||||||
|
print network_time(), c$id;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue