]>
git.ipfire.org Git - thirdparty/suricata.git/log
Philippe Antoine [Wed, 8 Jun 2022 12:40:49 +0000 (14:40 +0200)]
nfs: fix arbitrary allocation
Bug introduced by https://github.com/OISF/suricata/pull/7111
Nom's count begins by allocating a Vector, which leads to arbitrary
allocation due to flavors_cnt coming from network, and not even
being checked against i.len()
Ticket: #5237
Philippe Antoine [Wed, 8 Jun 2022 15:07:45 +0000 (17:07 +0200)]
util: fix integer warnings in mime decoding
Ticket: #4516
Philippe Antoine [Wed, 8 Jun 2022 15:02:41 +0000 (17:02 +0200)]
defrag: do not cast pkt len to u16
as it can overflow
Philippe Antoine [Fri, 3 Jun 2022 14:08:34 +0000 (16:08 +0200)]
detect: change InspectEngineFuncPtr2 to return uint8_t
Philippe Antoine [Wed, 19 Jan 2022 21:18:57 +0000 (22:18 +0100)]
ci: adds warning flag about integer conversions
Philippe Antoine [Tue, 18 Jan 2022 15:11:37 +0000 (16:11 +0100)]
detect: fix integer warnings
Ticket: #4516
Philippe Antoine [Fri, 3 Jun 2022 13:45:01 +0000 (15:45 +0200)]
detect: fix integer warnings for content
Ticket: #4516
Philippe Antoine [Fri, 3 Jun 2022 13:42:27 +0000 (15:42 +0200)]
detect: fix integer warnings for app-layer-event
Ticket: #4516
Philippe Antoine [Fri, 3 Jun 2022 07:20:40 +0000 (09:20 +0200)]
ftp: fix integer warning
Ticket: #4516
Philippe Antoine [Wed, 8 Jun 2022 12:31:24 +0000 (14:31 +0200)]
dns: remove unused events field from state
found overflowing by oss-fuzz
Victor Julien [Tue, 7 Jun 2022 20:57:39 +0000 (22:57 +0200)]
detect/threshold: fix offline time handling issue
Due to the TIMEVAL_DIFF_SEC calculating the delta into an unsigned
integer, it would underflow to a high positive value leading to
and incorrect result if the packet timestamp was below the timestamp
for the threshold entry. In normal conditions this shouldn't happen,
but in offline mode each thread has its own concept of time which
might differ significantly based on the pcap. In this case the
overflow would be very common.
Changing it to a signed value calculation triggered fuzz undefined
behavior if the packet timeval was very high, so this patch takes a
new approach where it no longer calculates a diff but sets up the
"seconds" value we compare against as a timeval itself, and uses
that to compare.
Fixes: 9fafc1031c0c ("time: Add TIMEVAL_EARLIER and TIMEVAL_DIFF_SEC macros.")
Fixes: 82dc61f4c3e3 ("detect/threshold: Refactor threshold calculation to handle by_rule and by_both.")
Uses add `timeradd` specific version where available.
Bug: #5386.
Victor Julien [Wed, 8 Jun 2022 11:11:55 +0000 (13:11 +0200)]
stream/midstream: fix double flow reverse case
In the case of midstream SYN/ACK pickup, we reverse the flow based on
the SYN/ACK. If we then later get traffic that appears to be in the
reverse direction based on the app-layer, we would reverse it again.
This isn't correct. When we have the SYN/ACK we know the flow's real
direction.
Victor Julien [Tue, 7 Jun 2022 20:31:56 +0000 (22:31 +0200)]
eve/schema: add missing capture_file field
Victor Julien [Tue, 7 Jun 2022 19:12:46 +0000 (21:12 +0200)]
eve/schema: add missing http fields
Victor Julien [Tue, 7 Jun 2022 19:12:33 +0000 (21:12 +0200)]
eve/schema: add missing alert fields
Victor Julien [Tue, 7 Jun 2022 12:19:59 +0000 (14:19 +0200)]
eve/schema: add missing smb fields
Victor Julien [Tue, 7 Jun 2022 12:00:27 +0000 (14:00 +0200)]
eve/schema: add missing drop fields for ipv6
Victor Julien [Tue, 7 Jun 2022 11:55:16 +0000 (13:55 +0200)]
eve/schema: add profiling detect fields
Lukas Sismis [Sat, 21 May 2022 06:30:06 +0000 (08:30 +0200)]
bypass: af-packet: fix memory leak - reassign of EBPFBypassData
AF-Packet bypass function in some situations allocates EBPF bypass data
for an already bypassed flow and assigns it to the flow without any checks
Issue: #5368
Lukas Sismis [Fri, 20 May 2022 19:33:38 +0000 (21:33 +0200)]
bypass: fix memory leak - reassign of FlowBypassInfo
In some situations bypass callback is called on already bypassed
flow. This allocates FlowBypassInfo structure for the flow but
does not check if the flow already has one.
Issue: #5368
Victor Julien [Tue, 7 Jun 2022 08:40:31 +0000 (10:40 +0200)]
napatech: fix conf API call
Victor Julien [Mon, 14 Mar 2022 06:20:11 +0000 (07:20 +0100)]
exceptions: initial exception-policy implementation
Adds a framework for setting exception policies. These would be called
when the engine reaches some kind of exception condition, like hitting
a memcap or some traffic processing error.
The policy gives control over what should happen next: drop the packet,
drop the packet and flow, bypass, etc.
Implements the policy for:
stream: If stream session or reassembly memcaps are hit call the
memcap policy on the packet and flow.
flow: Apply policy when memcap is reached and no flow could be
freed up.
defrag: Apply policy when no tracker could be picked up.
app-layer: Apply ppolicy if a parser reaches an error state.
All options default to 'ignore', which means the default behavior
is unchanged.
Adds commandline options: add simulation options for exceptions. These
are only exposed if compiled with `--enable-debug`.
Ticket: #5214.
Ticket: #5215.
Ticket: #5216.
Ticket: #5218.
Ticket: #5194.
Victor Julien [Mon, 2 May 2022 19:42:27 +0000 (21:42 +0200)]
decode: add pass action wrapper
Victor Julien [Mon, 2 May 2022 19:27:43 +0000 (21:27 +0200)]
decode: turn no payload/packet inspect macros into funcs
Remove unused unset macros.
Victor Julien [Mon, 21 Mar 2022 20:57:04 +0000 (21:57 +0100)]
eve/drop: log drop reason
Ticket: #5202.
Victor Julien [Tue, 22 Mar 2022 16:06:18 +0000 (17:06 +0100)]
stream/tests: remove bad test; update failing test to new behavior
Victor Julien [Wed, 1 Jun 2022 12:49:27 +0000 (14:49 +0200)]
stream: clarify error handling comment
Victor Julien [Tue, 22 Mar 2022 16:05:50 +0000 (17:05 +0100)]
stream/reassemble: clarify error handling
Victor Julien [Tue, 22 Mar 2022 16:03:09 +0000 (17:03 +0100)]
stream: remove now unused tcp.insert_list_fail counter
Victor Julien [Tue, 22 Mar 2022 16:01:03 +0000 (17:01 +0100)]
stream/segtree: simplify error handling
Now that spurious retransmissions don't propegate into the reassembly
code, error handling can be simplified.
Victor Julien [Wed, 1 Jun 2022 12:57:52 +0000 (14:57 +0200)]
stream/rules: add example rule for pkt_spurious_retransmission
Victor Julien [Tue, 22 Mar 2022 16:00:29 +0000 (17:00 +0100)]
stream: detect spurious retransmissions early
dependabot[bot] [Fri, 3 Jun 2022 19:40:52 +0000 (19:40 +0000)]
github-actions: bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
jason taylor [Fri, 3 Jun 2022 21:53:05 +0000 (21:53 +0000)]
config: update commented value to default status
Signed-off-by: jason taylor <jtfas90@gmail.com>
Victor Julien [Mon, 6 Jun 2022 07:59:15 +0000 (09:59 +0200)]
tests: remove unnecessary flow locks
Added once to satisfy debug validation, but we don't mix unittests
and debug validation anymore.
sed -i -E '/.*FLOWLOCK_.*LOCK/d' *.c
Victor Julien [Sun, 5 Jun 2022 18:05:23 +0000 (20:05 +0200)]
smtp: minor line loop cleanup
Victor Julien [Sun, 5 Jun 2022 16:23:55 +0000 (18:23 +0200)]
smtp: remove defunct check for line with single LF
Don't fix it as DATA processing needs all the bytes.
Victor Julien [Sun, 5 Jun 2022 16:24:05 +0000 (18:24 +0200)]
smtp: constify line arguments where possible
Victor Julien [Sun, 5 Jun 2022 15:20:40 +0000 (17:20 +0200)]
smtp: move current line out of state
Victor Julien [Sun, 5 Jun 2022 13:01:18 +0000 (15:01 +0200)]
smtp: move input out of state
Victor Julien [Sat, 4 Jun 2022 06:49:41 +0000 (08:49 +0200)]
smtp: turn assertions in to debug asserts
Victor Julien [Sat, 4 Jun 2022 06:49:25 +0000 (08:49 +0200)]
smtp: simplify preprocess loop
Victor Julien [Fri, 3 Jun 2022 15:10:59 +0000 (17:10 +0200)]
mime/base64: decode cleanups and simplification
Addresses edge case: > 4 bytes at the end of the input with 2 or more
spaces.
Changes length type for remainder processing to allow for much longer
lines, which can happen in practice.
Adds a series of debug validation checks with real error handling
as well, to assist the fuzzer to find more edge cases.
Victor Julien [Sat, 4 Jun 2022 05:09:27 +0000 (07:09 +0200)]
base64: no special case for nul char
Let it be handled like other invalid input.
Shivani Bhardwaj [Thu, 2 Jun 2022 15:20:07 +0000 (20:50 +0530)]
base64: make decoder handle decoded data space constraints
So far, it was the job of caller to send the bae64 decoder a perfect
block of data and take care of the destination buffer (decoded data)
size. Now, make it the decoder's job to take care of any space
constraints that the destination buffer may have and return accordingly.
Also, handle space characters in base64 encoded data as per RFC 2045.
Update MIME parser accordingly to handle the base64 data.
Ticket: 5315
Shivani Bhardwaj [Fri, 3 Jun 2022 10:26:36 +0000 (15:56 +0530)]
base64: add Base64Ecode enum
Shivani Bhardwaj [Thu, 12 May 2022 18:00:00 +0000 (23:30 +0530)]
base64: add Base64Mode enum
Shivani Bhardwaj [Fri, 29 Apr 2022 08:51:40 +0000 (14:21 +0530)]
smtp: treat CR as a line terminator
The ideal line terminator for an SMTP line is <CRLF>. But, given that
bare LF is still allowed by many systems despite the prohibition by
standards, we have to consider that. In order to simplify things, we
consider bare CR as line terminators as well while updating the
delimiter parameter correctly if they were to be followed by a LF
immediately or as a part of next fragment.
This takes care of some edge cases that made base64 decoder error out
because unexpected data was sent to it at times.
Ticket: 5316
BACK Yonah [Mon, 28 Mar 2022 17:10:48 +0000 (19:10 +0200)]
ci: adds CodeQL workflow and LGTM support
Ticket: #5307
dependabot[bot] [Wed, 1 Jun 2022 19:54:29 +0000 (19:54 +0000)]
github-actions: bump ossf/scorecard-action from 1.1.0 to 1.1.1
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/
5c8bc69dc88b65c66584e07611df79d3579b0377 ...
3e15ea8318eee9b333819ec77a36aca8d39df13e )
---
updated-dependencies:
- dependency-name: ossf/scorecard-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 1 Jun 2022 19:54:26 +0000 (19:54 +0000)]
github-actions: bump github/codeql-action from 2.1.11 to 2.1.12
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.11 to 2.1.12.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/
a3a6c128d771b6b9bdebb1c9d0583ebd2728a108 ...
27ea8f8fe5977c00f5b37e076ab846c5bd783b96 )
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Philippe Antoine [Mon, 25 Apr 2022 15:59:00 +0000 (17:59 +0200)]
detect: use generic integer functions for streamsize
By the way, adds the prefilter feature
Ticket: #2697
Ticket: #4112
Philippe Antoine [Wed, 23 Mar 2022 20:43:50 +0000 (21:43 +0100)]
detect: use generic integer functions for filesize
Ticket: #4112
Philippe Antoine [Wed, 23 Mar 2022 20:33:08 +0000 (21:33 +0100)]
detect: use generic integer functions for tcp mss
Ticket: #4112
Philippe Antoine [Wed, 23 Mar 2022 20:16:26 +0000 (21:16 +0100)]
detect: use generic integer functions for template2
Philippe Antoine [Wed, 23 Mar 2022 20:11:34 +0000 (21:11 +0100)]
detect: use generic integer functions for ttl
Ticket: #4112
Philippe Antoine [Wed, 23 Mar 2022 19:52:42 +0000 (20:52 +0100)]
detect: use generic integer functions for dsize
Ticket: #4112
Philippe Antoine [Wed, 23 Mar 2022 19:44:44 +0000 (20:44 +0100)]
detect: rust generic functions for integers
Move it away from http2 to generic core crate.
And use it for DCERPC (and SMB)
And remove the C version.
Main change in API is the free function is not free itself, but
a rust wrapper around unbox.
Ticket: #4112
Philippe Antoine [Sat, 16 Apr 2022 13:51:29 +0000 (15:51 +0200)]
util: better hex print function
Without dangerous snprintf pattern identified by CodeQL
even if this pattern is not a problem in those precise cases,
it may easily get copy pasted in a dangerous place, so better
get rid of it and make CodeQL happy
Philippe Antoine [Tue, 31 May 2022 11:43:56 +0000 (13:43 +0200)]
rust: make suricata context const
So that it is read only and its pointers do not get modified
Philippe Antoine [Tue, 31 May 2022 11:24:09 +0000 (13:24 +0200)]
ftp: remove temporary fields from state
As input, input_len and direction only last for the scope of
one call of AppLayerParserParse, it is not necessary to keep them
in FtpState which lives longer, so we consume less memory.
Philippe Antoine [Mon, 23 May 2022 15:49:49 +0000 (17:49 +0200)]
modbus: bump up rust crate version
So that probing parser is more strict and does not accept unknown
function code as valid modbus.
Ticket: #5377
Jason Ish [Wed, 11 May 2022 17:23:24 +0000 (11:23 -0600)]
detect: introduce "like" ip-only signature type
Rules that look like they should be IP-only but contain a negated rule
address are now marked with an LIKE_IPONLY flag. This is so they are
treated like IPONLY rules with respect to flow action, but don't
interfere with other IPONLY processing like using the radix tree.
Ticket: #5361
Philippe Antoine [Mon, 2 May 2022 11:30:35 +0000 (13:30 +0200)]
decode: fix integer warning
Newly introduced warning.
Regular cast as value is checked just before.
Ticket: #4516
Philippe Antoine [Tue, 18 Jan 2022 14:36:52 +0000 (15:36 +0100)]
defrag: fix integer warnings
Ticket: #4516
Philippe Antoine [Fri, 29 Apr 2022 06:55:58 +0000 (08:55 +0200)]
rust: cbindgen first verifies existing bindings
So as not to recompile every C file inclusing rust.h
Philippe Antoine [Sat, 16 Apr 2022 14:51:42 +0000 (16:51 +0200)]
detect: parsing avoiding infinite loop
by comparing size_t to strlen result
Instead of uint16_t which would loop
Ticket: #5310
Philippe Antoine [Sat, 16 Apr 2022 14:46:01 +0000 (16:46 +0200)]
file: use functions on fd to avoid toctou
Ticket: #5308
Philippe Antoine [Sat, 16 Apr 2022 14:41:46 +0000 (16:41 +0200)]
util: check for unsigned overflow in rohash
To make CodeQL happy
Jason Ish [Mon, 30 May 2022 22:52:29 +0000 (16:52 -0600)]
conf: remove ConfGetValue
All uses of ConfGetValue are satisfied by ConfGet
Philippe Antoine [Fri, 20 May 2022 18:24:43 +0000 (20:24 +0200)]
util: remove malloc from streaming buffer config
as it is unused
dependabot[bot] [Tue, 31 May 2022 19:31:38 +0000 (19:31 +0000)]
github-actions: bump actions/cache from 3.0.2 to 3.0.3
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/
48af2dc4a9e8278b89d7fa154b955c30c6aaab09 ...
30f413bfed0a2bc738fdfd409e5a9e96b24545fd )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Andreas Dolp [Tue, 31 May 2022 13:58:54 +0000 (15:58 +0200)]
doc/tls: Add documentation for TLS logging
Andreas Dolp [Tue, 31 May 2022 13:28:40 +0000 (15:28 +0200)]
doc/tls: Remove redundant example
Andreas Dolp [Sat, 2 Apr 2022 12:33:54 +0000 (14:33 +0200)]
suricata.yaml.in: Fix default value of prealloc-sessions
Andreas Dolp [Sat, 2 Apr 2022 12:02:40 +0000 (14:02 +0200)]
doc: Add missing ")" in example
Andreas Dolp [Sat, 2 Apr 2022 11:59:59 +0000 (13:59 +0200)]
suricata.yaml.in: Remove duplicate "with" in comment.
Andreas Dolp [Thu, 17 Feb 2022 07:04:35 +0000 (08:04 +0100)]
doc: Fix typos
Andreas Dolp [Thu, 17 Feb 2022 07:03:10 +0000 (08:03 +0100)]
doc: Fix broken link
Philippe Antoine [Thu, 12 May 2022 18:31:25 +0000 (20:31 +0200)]
output: adds schema.json
Ticket: #1369
Victor Julien [Mon, 30 May 2022 19:08:19 +0000 (21:08 +0200)]
log-pcap: remove tunnel locks
The tunnel lock mutex only "protects" the tunnel synchronization,
not the packet data, length or datalink fields.
Victor Julien [Mon, 30 May 2022 13:53:39 +0000 (15:53 +0200)]
nflog: fix datalink compile issue
Juliana Fajardini [Thu, 26 May 2022 22:07:55 +0000 (19:07 -0300)]
util/action: convert unittests to FAIL/PASS API
Task #5371
Juliana Fajardini [Thu, 26 May 2022 21:53:03 +0000 (18:53 -0300)]
util/action: unittests clean-up (to sv tests)
Removing all unittests that work better as suricata-verify tests.
Task #5371
Victor Julien [Wed, 18 May 2022 12:36:24 +0000 (14:36 +0200)]
unittest: minor helper cleanup
Victor Julien [Wed, 25 May 2022 13:01:15 +0000 (15:01 +0200)]
detect/parse: cleanup test
Victor Julien [Wed, 18 May 2022 12:46:28 +0000 (14:46 +0200)]
detect: parsing test cleanups/improvements
Victor Julien [Wed, 18 Dec 2019 19:21:01 +0000 (20:21 +0100)]
host-os-info: add test to show mixed ipv4/ipv6
Victor Julien [Wed, 18 May 2022 18:47:33 +0000 (20:47 +0200)]
rule/vars: clean up tests
Victor Julien [Tue, 24 May 2022 10:55:39 +0000 (12:55 +0200)]
detect/iponly: minor code cleanup
Victor Julien [Mon, 23 May 2022 11:59:31 +0000 (13:59 +0200)]
detect/iponly: include postmatch in determination
Victor Julien [Tue, 10 May 2022 12:22:36 +0000 (14:22 +0200)]
detect/iponly: simplify handling of 'any' parsing
Victor Julien [Tue, 10 May 2022 11:26:07 +0000 (13:26 +0200)]
detect: address parsing variable rename to match code style
Victor Julien [Fri, 13 May 2022 08:01:51 +0000 (10:01 +0200)]
detect/iponly: remove unused code
Juliana Fajardini [Thu, 26 May 2022 23:28:41 +0000 (20:28 -0300)]
rust: fix doc comments that trigger rust warnings
Rust generates warnings that are treated as errors for documentation
blocks before `extern` blocks.
dependabot[bot] [Wed, 25 May 2022 19:45:53 +0000 (19:45 +0000)]
github-actions: bump ossf/scorecard-action from 1.0.4 to 1.1.0
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 1.0.4 to 1.1.0.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/
c1aec4ac820532bab364f02a81873c555a0ba3a1 ...
5c8bc69dc88b65c66584e07611df79d3579b0377 )
---
updated-dependencies:
- dependency-name: ossf/scorecard-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Victor Julien [Thu, 26 May 2022 11:30:56 +0000 (13:30 +0200)]
stream: add packet header outside of lock
Victor Julien [Thu, 26 May 2022 11:29:59 +0000 (13:29 +0200)]
log/pcap: open handles outside of lock
Scott Jordan [Thu, 3 Feb 2022 20:18:11 +0000 (15:18 -0500)]
log/pcap: add buffer timeout
Set timeout for pcap log so that packets do not sit
in buffer. Set default to one second.
Scott Jordan [Mon, 1 Nov 2021 21:43:43 +0000 (16:43 -0500)]
stream: memcap tracking for TcpSegment alloc