]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
6 years agosuricata.yaml: fix path to XDP doc 3567/head
Eric Leblond [Tue, 4 Dec 2018 16:08:40 +0000 (17:08 +0100)] 
suricata.yaml: fix path to XDP doc

6 years agoutil-bpf: workaround OpenBSD old libpcap
Eric Leblond [Mon, 3 Dec 2018 17:06:16 +0000 (18:06 +0100)] 
util-bpf: workaround OpenBSD old libpcap

OpenBSD is not using a pcap_compile_* function so we can just
comment the code for OpenBSD users.

6 years agoaf-packet: remove unused field in AFPThreadVars
Eric Leblond [Thu, 22 Nov 2018 14:00:11 +0000 (15:00 +0100)] 
af-packet: remove unused field in AFPThreadVars

6 years agoconfigure.ac: better llc binary detection
Eric Leblond [Tue, 23 Oct 2018 04:39:18 +0000 (06:39 +0200)] 
configure.ac: better llc binary detection

llc is needed to build the ebpf files and current autoconf code
was not working properly on Debian.

6 years agoaf-packet: remove years old todos
Eric Leblond [Fri, 12 Oct 2018 17:34:43 +0000 (19:34 +0200)] 
af-packet: remove years old todos

6 years agonetmap: use custom BPF compile function
Eric Leblond [Wed, 10 Oct 2018 22:17:59 +0000 (00:17 +0200)] 
netmap: use custom BPF compile function

6 years agoaf-packet: use the new BPF compilation function
Eric Leblond [Wed, 10 Oct 2018 22:12:00 +0000 (00:12 +0200)] 
af-packet: use the new BPF compilation function

6 years agoutil-bpf: introduce custom BPF compile functions
Eric Leblond [Wed, 10 Oct 2018 22:10:54 +0000 (00:10 +0200)] 
util-bpf: introduce custom BPF compile functions

We can't get error from pcap_compile_nopcap() so let's get our
own function and output message.

6 years agoaf-packet: micro optimization
Eric Leblond [Wed, 10 Oct 2018 17:26:29 +0000 (19:26 +0200)] 
af-packet: micro optimization

Use a else if instead of two chained if constructs.

6 years agoaf-packet: improve error handling
Eric Leblond [Mon, 8 Oct 2018 21:51:37 +0000 (23:51 +0200)] 
af-packet: improve error handling

Stress condition in Suricata could lead to interface to disconnect
when it is not necessary. This patch updates the error handling
code to try to continue reading when such a case occurs.

6 years agobypass:added new documentation reference 3563/head
jason taylor [Tue, 27 Nov 2018 19:35:35 +0000 (14:35 -0500)] 
bypass:added new documentation reference

Documentation didn't previously exist for the bypass keyword

Signed-off-by: jason taylor <jtfas90@gmail.com>
6 years agodebug/log: add log level for JSON type
Eric Urban [Mon, 12 Nov 2018 18:38:50 +0000 (12:38 -0600)] 
debug/log: add log level for JSON type

resolves #2671

6 years agoconfigure: allow for --disable-suricata-update
Jason Ish [Sun, 25 Nov 2018 15:03:22 +0000 (09:03 -0600)] 
configure: allow for --disable-suricata-update

This is to prevent suricata-update from being installed if it
would otherwise be installed based on in being bundled, and
its dependencies being available.

Warn the user that Suricata-Update will not be installed if it
is bundled, but python-yaml is missing (this will also cover
the case where Python is missing).

Add "Install suricata-update" to the build summary. For consistency,
relable "Suricatasc install" as "Install suricatasc".

6 years agoconfigure: check for python-yaml
Jason Ish [Sat, 24 Nov 2018 18:06:46 +0000 (12:06 -0600)] 
configure: check for python-yaml

Don't install suricata-update if python-yaml does not
exist.

6 years agoconfigure: print datarootdir
Jason Ish [Fri, 16 Nov 2018 18:32:01 +0000 (10:32 -0800)] 
configure: print datarootdir

This is relevant now as its where Suricata engine rules
get installed.

6 years agodetect/mpm: fix fast_pattern handling of len >255
Victor Julien [Sat, 1 Dec 2018 09:06:54 +0000 (10:06 +0100)] 
detect/mpm: fix fast_pattern handling of len >255

The fast pattern selection logic would truncate a patterns len to
255 leading to assigning the same pid to different patterns.

This in turn would be caught by the hyperscan setup code which would
abort.

Bug #2714.

6 years agorust/filetracker: remove reachable panic 3561/head
Victor Julien [Fri, 30 Nov 2018 10:59:17 +0000 (11:59 +0100)] 
rust/filetracker: remove reachable panic

Remove reachable panic condition when an existing file chunk is not
completed. Instead trunc the file and reset.

Related to bug #2717

6 years agonfs: improve file tracking under packet loss
Victor Julien [Fri, 30 Nov 2018 10:38:04 +0000 (11:38 +0100)] 
nfs: improve file tracking under packet loss

In case of packet loss during an in-progress chunk the file tracker
could loose track of a file because it couldn't map the XID to a
file handle.

The file tracker would then panic if a new file was opened, as
it noticed the last chunk wasn't yet complete.

This patch tracks the file handle for a in-progress chunk in the
state, just like the tracking of the size that is left.

Bug #2717

6 years agorust/nfs: improve debug output
Victor Julien [Fri, 30 Nov 2018 10:37:46 +0000 (11:37 +0100)] 
rust/nfs: improve debug output

6 years agoiprep: small cleanups 3559/head
Victor Julien [Thu, 22 Nov 2018 09:34:57 +0000 (10:34 +0100)] 
iprep: small cleanups

6 years agoiprep: improve error checking of path handling
Victor Julien [Thu, 22 Nov 2018 09:34:49 +0000 (10:34 +0100)] 
iprep: improve error checking of path handling

6 years agodetect: improve inspect buffer handling
Victor Julien [Wed, 18 Apr 2018 13:25:40 +0000 (15:25 +0200)] 
detect: improve inspect buffer handling

Fix and Optimize cleanup. For the simple single inspect buffer optimize
the cleanup by keeping track of the actually used buffers. This avoid
looping over unused buffers.

Fix the case of cleaning not being done after a tx if the next tx is
also inspected in the context of the same packet.

Fix cleanup of the multi-inspect buffers. Optimize in 2 ways. First
like with single keep track of which multi-inspect buffers have been
used. Second, keep a max of the buffers within a multi-inspect buffer.
Use this max to limit (nested) looping.

6 years agoprofiling: set loop limit to match array size 3554/head
jason taylor [Thu, 15 Nov 2018 04:18:52 +0000 (23:18 -0500)] 
profiling: set loop limit to match array size

Signed-off-by: jason taylor <jtfas90@gmail.com>
6 years agoprelude: fix potential uninitialized value use 3553/head
Victor Julien [Tue, 20 Nov 2018 11:31:01 +0000 (12:31 +0100)] 
prelude: fix potential uninitialized value use

6 years agodetect: suppress coverity deadcode warnings
Victor Julien [Tue, 20 Nov 2018 11:28:16 +0000 (12:28 +0100)] 
detect: suppress coverity deadcode warnings

Suppress as scan-build-7 relies on this 'dead' code to not issue
a warning.

6 years agofilestore: suppress coverity toctou warning
Victor Julien [Tue, 20 Nov 2018 11:25:04 +0000 (12:25 +0100)] 
filestore: suppress coverity toctou warning

6 years agodetect: fix coverity memory leak warnings
Victor Julien [Tue, 20 Nov 2018 11:22:47 +0000 (12:22 +0100)] 
detect: fix coverity memory leak warnings

6 years agofile: use u32 file id everywhere
Victor Julien [Mon, 19 Nov 2018 21:00:33 +0000 (22:00 +0100)] 
file: use u32 file id everywhere

6 years agodetect/distance: improve value parsing and fix broken test
Victor Julien [Tue, 13 Nov 2018 00:45:05 +0000 (16:45 -0800)] 
detect/distance: improve value parsing and fix broken test

6 years agodetect/within: clean up option value parsing
Victor Julien [Tue, 13 Nov 2018 00:27:27 +0000 (16:27 -0800)] 
detect/within: clean up option value parsing

6 years agodetect/within: test cleanups
Victor Julien [Mon, 12 Nov 2018 23:48:45 +0000 (15:48 -0800)] 
detect/within: test cleanups

6 years agoeve/dns: improve version warning message
Victor Julien [Mon, 12 Nov 2018 23:35:46 +0000 (15:35 -0800)] 
eve/dns: improve version warning message

6 years agodetect/offset: improve value parsing
Victor Julien [Mon, 12 Nov 2018 23:33:39 +0000 (15:33 -0800)] 
detect/offset: improve value parsing

6 years agoapp-layer-ssl: fix coverty error (RESOURCE_LEAK) 3543/head
Mats Klepsland [Tue, 13 Nov 2018 19:06:50 +0000 (20:06 +0100)] 
app-layer-ssl: fix coverty error (RESOURCE_LEAK)

Bug #2677

6 years agochangelog: update for 4.1 suricata-4.1.0
Victor Julien [Tue, 6 Nov 2018 08:54:10 +0000 (09:54 +0100)] 
changelog: update for 4.1

6 years agosmtp/mime: fix null ptr deref on bad traffic
Victor Julien [Tue, 30 Oct 2018 15:10:33 +0000 (16:10 +0100)] 
smtp/mime: fix null ptr deref on bad traffic

Due to missing error handling, a bad mime message could put the
mime parser in an error state, without the SMTP layer taking this
into account. So the SMTP layer would continue to pass data to the
mime parser, even though it was in an error state.

When the parser would be fed a very long line while in this state,
it would try to set an error flag in the state. However, due to
the error state, this setting of the flag would dereference a null
pointer.

This patch fixes this issue by updating the mime parser to check
the state it is in when receiving new input. It will refuse to
process futher data while in the error state. It will also return
a new error code to indicate to the SMTP layer that the parser
was in an error state.

6 years agoipv6: disable zero len padN rule by default
Victor Julien [Fri, 2 Nov 2018 15:59:40 +0000 (16:59 +0100)] 
ipv6: disable zero len padN rule by default

6 years agodoc: Remove gulp references
jason taylor [Tue, 23 Oct 2018 23:23:11 +0000 (19:23 -0400)] 
doc: Remove gulp references

Signed-off-by: jason taylor <jtfas90@gmail.com>
6 years agodoc: add bypass keyword documentation
jason taylor [Wed, 17 Oct 2018 19:52:59 +0000 (15:52 -0400)] 
doc: add bypass keyword documentation

Signed-off-by: jason taylor <jtfas90@gmail.com>
6 years agofilestore: fix compiler truncation warnings
Jason Ish [Wed, 31 Oct 2018 22:41:07 +0000 (16:41 -0600)] 
filestore: fix compiler truncation warnings

And error out if the constructed filename is truncated.

6 years agoapp-layer-ssl: add Facebook TLSv1.3 draft versions 3536/head
Mats Klepsland [Tue, 30 Oct 2018 20:35:25 +0000 (21:35 +0100)] 
app-layer-ssl: add Facebook TLSv1.3 draft versions

Add draft versions for Facebooks custom TLSv1.3 implementation "fizz"
to SSLVersionToString().

6 years agoapp-layer-ssl: change how TLSv1.3 drafts are logged
Mats Klepsland [Tue, 30 Oct 2018 19:18:05 +0000 (20:18 +0100)] 
app-layer-ssl: change how TLSv1.3 drafts are logged

Change from logging TLSv1.3 drafts as "TLS 1.3 (draft 28)" to
"TLS 1.3 draft-28" instead.

6 years agouserguide: add documentation for ssl_version keyword 3534/head
Mats Klepsland [Mon, 29 Oct 2018 22:03:08 +0000 (23:03 +0100)] 
userguide: add documentation for ssl_version keyword

6 years agopfring: default to runmode workers
Victor Julien [Mon, 29 Oct 2018 09:31:52 +0000 (10:31 +0100)] 
pfring: default to runmode workers

Now that threads:auto is implemented workers is a better default
as it generally performs better.

6 years agopfring: implement 'threads: auto'
Victor Julien [Mon, 29 Oct 2018 08:56:40 +0000 (09:56 +0100)] 
pfring: implement 'threads: auto'

If threads is set to auto, first try the CPU count. If that would
fail, fall back to RSS queue count.

6 years agopfring: support checking/disabling offloading
Victor Julien [Mon, 29 Oct 2018 08:37:11 +0000 (09:37 +0100)] 
pfring: support checking/disabling offloading

6 years agopfring: fix bypass counter print uninitialized values
Victor Julien [Mon, 29 Oct 2018 08:29:58 +0000 (09:29 +0100)] 
pfring: fix bypass counter print uninitialized values

If the option was disabled in the config the value would be uninitialized.

6 years agostorage: don't leak memory for unittests
Victor Julien [Fri, 26 Oct 2018 14:03:05 +0000 (16:03 +0200)] 
storage: don't leak memory for unittests

6 years agoradix: fix a memleak when removing the last node
Victor Julien [Fri, 26 Oct 2018 14:15:58 +0000 (16:15 +0200)] 
radix: fix a memleak when removing the last node

6 years agodetect/address: minor memory handling cleanups
Victor Julien [Thu, 25 Oct 2018 15:31:49 +0000 (17:31 +0200)] 
detect/address: minor memory handling cleanups

6 years agodetect: suppress scan-build warnings
Victor Julien [Thu, 25 Oct 2018 15:02:43 +0000 (17:02 +0200)] 
detect: suppress scan-build warnings

6 years agodetect/flags: cleanup parsing to not alloc temp strings
Victor Julien [Thu, 25 Oct 2018 10:30:12 +0000 (12:30 +0200)] 
detect/flags: cleanup parsing to not alloc temp strings

6 years agompm: fix minor scan-build warning
Victor Julien [Thu, 25 Oct 2018 09:55:05 +0000 (11:55 +0200)] 
mpm: fix minor scan-build warning

6 years agopool: avoid possible double free in error path
Victor Julien [Thu, 25 Oct 2018 09:44:53 +0000 (11:44 +0200)] 
pool: avoid possible double free in error path

Should be impossible as a double free, but scan-build-7 thinks it
is possible.

6 years agopool: small code cleanups
Victor Julien [Thu, 25 Oct 2018 09:44:15 +0000 (11:44 +0200)] 
pool: small code cleanups

6 years agostream: don't assume malformed TCP packets
Victor Julien [Thu, 25 Oct 2018 06:27:22 +0000 (08:27 +0200)] 
stream: don't assume malformed TCP packets

This deep in the stream engine packets are valid, so don't check
for the tcph header in a packet as it confuses scan-build.

Do add a DEBUG_VALIDATE_BUG_ON so in QA we double check.

6 years agodecode/tcp: rewrite options decoding to assist scan-build
Victor Julien [Wed, 24 Oct 2018 09:05:21 +0000 (11:05 +0200)] 
decode/tcp: rewrite options decoding to assist scan-build

6 years agosmb/c: don't accept null input
Victor Julien [Wed, 24 Oct 2018 08:58:58 +0000 (10:58 +0200)] 
smb/c: don't accept null input

6 years agohtp: fix potential (but unlikely) memleak in uri normalization
Victor Julien [Tue, 23 Oct 2018 14:17:26 +0000 (16:17 +0200)] 
htp: fix potential (but unlikely) memleak in uri normalization

6 years agothresholds: remove dead code in parsing
Victor Julien [Tue, 23 Oct 2018 13:10:56 +0000 (15:10 +0200)] 
thresholds: remove dead code in parsing

6 years agoradix: fix memory leak in error path
Victor Julien [Tue, 23 Oct 2018 13:08:05 +0000 (15:08 +0200)] 
radix: fix memory leak in error path

6 years agocoverity: suppress warnings
Victor Julien [Tue, 23 Oct 2018 13:01:42 +0000 (15:01 +0200)] 
coverity: suppress warnings

6 years agohost/os/info: fix lookup memleak
Victor Julien [Tue, 23 Oct 2018 12:59:15 +0000 (14:59 +0200)] 
host/os/info: fix lookup memleak

6 years agodebug/log: suppress coverity checked_return warning
Victor Julien [Tue, 23 Oct 2018 12:54:17 +0000 (14:54 +0200)] 
debug/log: suppress coverity checked_return warning

6 years agobpf: suppress coverity toctou warning
Victor Julien [Tue, 23 Oct 2018 12:53:28 +0000 (14:53 +0200)] 
bpf: suppress coverity toctou warning

6 years agopcap: fix buffer size validation logic
Victor Julien [Tue, 23 Oct 2018 12:51:25 +0000 (14:51 +0200)] 
pcap: fix buffer size validation logic

6 years agouricontent: move debug func into unittests
Victor Julien [Tue, 23 Oct 2018 12:43:35 +0000 (14:43 +0200)] 
uricontent: move debug func into unittests

Cleanup header, which lead to the app-layer-htp.h header needing to
be added in a few other places.

6 years agodetect/replace: fix mem leak in error path
Victor Julien [Tue, 23 Oct 2018 12:37:05 +0000 (14:37 +0200)] 
detect/replace: fix mem leak in error path

6 years agoisdataat: fix mem leak in error path
Victor Julien [Tue, 23 Oct 2018 12:34:08 +0000 (14:34 +0200)] 
isdataat: fix mem leak in error path

6 years agobits: avoid memory leak in case of adding types
Victor Julien [Tue, 23 Oct 2018 12:29:59 +0000 (14:29 +0200)] 
bits: avoid memory leak in case of adding types

6 years agoipproto: fix memleak in error case
Victor Julien [Tue, 23 Oct 2018 12:10:18 +0000 (14:10 +0200)] 
ipproto: fix memleak in error case

6 years agobytetest: don't leak memory in error condition
Victor Julien [Tue, 23 Oct 2018 11:56:50 +0000 (13:56 +0200)] 
bytetest: don't leak memory in error condition

6 years agoyaml: fix potential memleak and suppress coverity issue
Victor Julien [Tue, 23 Oct 2018 11:53:13 +0000 (13:53 +0200)] 
yaml: fix potential memleak and suppress coverity issue

6 years agooutputs: fix memleaks in the error paths reported by coverity
Victor Julien [Tue, 23 Oct 2018 11:49:37 +0000 (13:49 +0200)] 
outputs: fix memleaks in the error paths reported by coverity

6 years agocoverity: suppress warning for intentional code
Victor Julien [Tue, 23 Oct 2018 11:23:09 +0000 (13:23 +0200)] 
coverity: suppress warning for intentional code

6 years agorust/dns: don't compile unused C code if Rust is enabled
Victor Julien [Tue, 23 Oct 2018 11:21:08 +0000 (13:21 +0200)] 
rust/dns: don't compile unused C code if Rust is enabled

6 years agocoverity: fix filestore v2 memleak
Victor Julien [Tue, 23 Oct 2018 11:06:42 +0000 (13:06 +0200)] 
coverity: fix filestore v2 memleak

6 years agolog-pcap: fix coverity memleak warning
Victor Julien [Tue, 23 Oct 2018 11:01:53 +0000 (13:01 +0200)] 
log-pcap: fix coverity memleak warning

6 years agocoverity: don't warn on fall back random
Victor Julien [Tue, 23 Oct 2018 10:57:50 +0000 (12:57 +0200)] 
coverity: don't warn on fall back random

6 years agoapp-layer-ssl: fix flow and inspection bypass for TLSv1.3 3532/head
Mats Klepsland [Mon, 29 Oct 2018 20:26:13 +0000 (21:26 +0100)] 
app-layer-ssl: fix flow and inspection bypass for TLSv1.3

6 years agoapp-layer-ssl: add 0-RTT support for TLSv1.3
Mats Klepsland [Mon, 29 Oct 2018 20:20:33 +0000 (21:20 +0100)] 
app-layer-ssl: add 0-RTT support for TLSv1.3

6 years agoapp-layer-ssl: decode early data extension in ClientHello record
Mats Klepsland [Mon, 29 Oct 2018 19:56:51 +0000 (20:56 +0100)] 
app-layer-ssl: decode early data extension in ClientHello record

Decode early data extension used by 0-RTT that is used to indicate that
application data will be sent right after the ClientHello record.

6 years agoapp-layer-ssl: use extension length when decoding extensions
Mats Klepsland [Mon, 29 Oct 2018 19:48:54 +0000 (20:48 +0100)] 
app-layer-ssl: use extension length when decoding extensions

Pass extension length to functions decoding extensions, instead of
passing the length left in the record. This enables us to also
decode empty extensions.

6 years agoapp-layer-ssl: handle all versions above TLSv1.2 as TLSv1.3
Mats Klepsland [Mon, 29 Oct 2018 19:30:41 +0000 (20:30 +0100)] 
app-layer-ssl: handle all versions above TLSv1.2 as TLSv1.3

This makes it more likely to log custom versions of TLSv1.3 that
doesn't comply with the draft version numbering.

6 years agotls: remove debug printfs
Victor Julien [Mon, 22 Oct 2018 17:25:04 +0000 (19:25 +0200)] 
tls: remove debug printfs

6 years agodetect-tls-ja3-hash: add another unit test 3520/head
Mats Klepsland [Sun, 21 Oct 2018 17:55:13 +0000 (19:55 +0200)] 
detect-tls-ja3-hash: add another unit test

Add unit test that covers the JA3 bug in TLS extensions decoding.

6 years agoapp-layer-ssl: fix JA3 bug in TLS extension decoding
Mats Klepsland [Fri, 19 Oct 2018 21:00:42 +0000 (23:00 +0200)] 
app-layer-ssl: fix JA3 bug in TLS extension decoding

6 years agoapp-layer-ssl: fix JA3 bug in TLS version decoding
Mats Klepsland [Thu, 18 Oct 2018 21:12:50 +0000 (23:12 +0200)] 
app-layer-ssl: fix JA3 bug in TLS version decoding

6 years agocapture: multidev is not experimental
Victor Julien [Mon, 22 Oct 2018 06:59:44 +0000 (08:59 +0200)] 
capture: multidev is not experimental

6 years agoflow/stream: 'wrong thread' as stream event & counter
Victor Julien [Fri, 5 Oct 2018 18:38:10 +0000 (20:38 +0200)] 
flow/stream: 'wrong thread' as stream event & counter

Set event at most once per flow, for the first 'wrong' packet.

Add 'tcp.pkt_on_wrong_thread' counter. This is incremented for each
'wrong' packet. Note that the first packet for a flow determines
what thread is 'correct'.

6 years agosmtp: fix clang -Wunreachable-code warning
Victor Julien [Mon, 24 Feb 2014 09:01:55 +0000 (10:01 +0100)] 
smtp: fix clang -Wunreachable-code warning

app-layer-smtp.c:756:12: error: will never be executed [-Werror,-Wunreachable-code]
    return 0;
           ^
1 error generated.

6 years agoprofiling/csv: update output format
Victor Julien [Sat, 22 Sep 2018 16:14:56 +0000 (18:14 +0200)] 
profiling/csv: update output format

Update output to be:

pcap_cnt,total,receive,decode,flowworker,threading,proto detect,flow,
stream,app-layer,detect,tcp-prune,loggers,<detect stages>,<loggers>

For TCP, the app-layer cost is not part of stream anymore.

6 years agomulti-tenant: document per tenant settings
Victor Julien [Tue, 7 Aug 2018 19:17:59 +0000 (21:17 +0200)] 
multi-tenant: document per tenant settings

6 years agotest mode: parse interface list in test mode
Victor Julien [Tue, 7 Aug 2018 14:13:31 +0000 (16:13 +0200)] 
test mode: parse interface list in test mode

6 years agowindivert: fix whitespace issue
Victor Julien [Tue, 7 Aug 2018 14:13:01 +0000 (16:13 +0200)] 
windivert: fix whitespace issue

6 years agoaf-packet: suppress noisy info message
Victor Julien [Tue, 7 Aug 2018 14:12:29 +0000 (16:12 +0200)] 
af-packet: suppress noisy info message

6 years agodetect/transforms: fix doc urls 3517/head
Victor Julien [Wed, 17 Oct 2018 20:06:23 +0000 (22:06 +0200)] 
detect/transforms: fix doc urls

6 years agopfring: multiple receive threads is not experimental
Victor Julien [Fri, 19 Oct 2018 14:57:59 +0000 (16:57 +0200)] 
pfring: multiple receive threads is not experimental

6 years agoeve: improve error handling for Rust loggers
Victor Julien [Fri, 19 Oct 2018 14:54:38 +0000 (16:54 +0200)] 
eve: improve error handling for Rust loggers

Give useful warning message if Rust is not compiled in.

6 years agopfring: minor cleanups
Victor Julien [Fri, 19 Oct 2018 13:41:35 +0000 (15:41 +0200)] 
pfring: minor cleanups