]>
git.ipfire.org Git - thirdparty/suricata.git/log
Jason Ish [Thu, 17 Nov 2022 22:27:29 +0000 (16:27 -0600)]
setup-app-layer: set copyright year to current year
Ticket: 4939
Jason Ish [Thu, 17 Nov 2022 22:05:15 +0000 (16:05 -0600)]
template: rename template-rust to template
Remove the distinction between the C template protocol "template" and
the Rust template protocol "template-rust" and make the Rust parser
simply template now that we no longer have support to generate a C
protocol template.
Jason Ish [Thu, 17 Nov 2022 16:37:02 +0000 (10:37 -0600)]
templates: remove C app-layer templates
Jason Ish [Thu, 17 Nov 2022 16:00:19 +0000 (10:00 -0600)]
templates: clang format cleanups
Cleanup the trivial clang-formatting issues in templates. Length of
protocol names may require clang-format after new protocol generation.
Jason Ish [Thu, 17 Nov 2022 15:38:31 +0000 (09:38 -0600)]
setup-app-layer: remove generator for C parsers
Ticket: 4939
Jason Ish [Thu, 17 Nov 2022 06:28:59 +0000 (00:28 -0600)]
rust/app-layer-template: rustfmt
Jason Ish [Thu, 17 Nov 2022 04:50:59 +0000 (22:50 -0600)]
app-layer-template-rust: remove C app-layer stub
Remove the app-layer-PROTO stub for Rust based parsers. It is no longer
needed as Rust parsers now contain the registration function in Rust.
Ticket: 4939
Jason Ish [Thu, 17 Nov 2022 05:50:13 +0000 (23:50 -0600)]
rust/conf: add fn conf_get_node
A wrapper around ConfGetNode to get a configuration node by name.
Jason Ish [Thu, 17 Nov 2022 05:19:06 +0000 (23:19 -0600)]
github-ci: add app-layer-template builder
Creates a protocol parser and logger and builds.
Jason Ish [Thu, 17 Nov 2022 04:28:32 +0000 (22:28 -0600)]
github-ci: rename alma to almalinux; 8.4 to 8
Victor Julien [Sat, 3 Dec 2022 09:52:38 +0000 (10:52 +0100)]
rust/lzma: clippy fixup
Victor Julien [Sat, 3 Dec 2022 06:37:43 +0000 (07:37 +0100)]
mime/base64: unify space handling
Philippe Antoine [Fri, 2 Dec 2022 13:43:10 +0000 (14:43 +0100)]
mime: do not skip empty lines for quoted-printable
As these lines are in the file...
Ticket: #5725
Jason Ish [Fri, 2 Dec 2022 15:39:55 +0000 (09:39 -0600)]
github-ci: enable lua on Fedora 36 build
Not many of the jobs that run S-V enable Lua, enable Lua for Fedora 36
which also runs S-V.
Jason Ish [Fri, 2 Dec 2022 14:31:58 +0000 (08:31 -0600)]
rust/http2: fix clippy lint for is_empty()
This snuck through as "cargo clippy" check wasn't finding lints that
were fixed by the previous test for fixable lints.
Jason Ish [Fri, 2 Dec 2022 14:26:03 +0000 (08:26 -0600)]
github-ci: fail if cargo clippy --fix creates a changes
Previously this was doing fixups and only warning, not erroring. Which
could made the following clippy command pass.
Philippe Antoine [Fri, 2 Dec 2022 12:55:42 +0000 (13:55 +0100)]
dns: do not oputput empty array for query
Philippe Antoine [Fri, 23 Sep 2022 12:25:39 +0000 (14:25 +0200)]
eve/schema: check that each array has at least one element
Ticket: #5167
Richard McConnell [Thu, 29 Sep 2022 11:35:17 +0000 (12:35 +0100)]
doc: document AF_XDP feature
Richard McConnell [Wed, 28 Sep 2022 16:15:55 +0000 (17:15 +0100)]
af-xdp: Configure build with AF_XDP support
Richard McConnell [Tue, 13 Sep 2022 13:22:13 +0000 (14:22 +0100)]
af-xdp: Add AF_XDP socket support
AF_XDP support is a recent technology introduced that aims at improving
capture performance. With this update, Suricata now provides a new
capture source 'af-xdp' that attaches an eBPF program to the network
interface card. Packets received in the NIC queue are forwarded to
a RX ring in user-space, bypassing the Linux network stack.
Note, there is a configuration option (force-xdp-mode) that forces the
packet through the normal Linux network stack.
libxdp and libbpf is required for this feature and is compile time
configured.
This capture source operates on single and multi-queue NIC's via
suricata.yaml. Here, various features can be enabled, disabled
or edited as required by the use case.
This feature currently only supports receiving packets via AF_XDP,
no TX support has been developed.
Ticket: https://redmine.openinfosecfoundation.org/issues/3306
Additional reading:
https://www.kernel.org/doc/html/latest/networking/af_xdp.html
Todd Mortimer [Fri, 8 Jul 2022 20:47:41 +0000 (20:47 +0000)]
file/swf: Use lzma-rs decompression instead of libhtp.
Use the lzma-rs crate for decompressing swf/lzma files instead of
the lzma decompressor in libhtp. This decouples suricata from libhtp
except for actual http parsing, and means libhtp no longer has to
export a lzma decompression interface.
Ticket: #5638
Victor Julien [Wed, 30 Nov 2022 05:44:40 +0000 (06:44 +0100)]
smb: fix file reopening issue
Fuzzing highlighted an issue where a command sequence on the same file
id triggered a logging issue:
file data for id N
close id N
file data for id N
If this happened in a single blob of data passed to the parser, the
existing file tx would be reused, the file "reopened", confusing the
file logging logic. This would trigger a debug assert.
This patch makes sure a new file tx is created for the file data
coming in after the first file tx is closed.
Bug: #5567.
Victor Julien [Fri, 18 Nov 2022 16:46:53 +0000 (17:46 +0100)]
fuzz/sigpcap: set pkt_src
Victor Julien [Thu, 17 Nov 2022 13:59:30 +0000 (14:59 +0100)]
stream: stricter check inserting segments
In lossy streams, esp where TcpSession::lossy_be_liberal it is possible
to end up inserting a segment that is out of the expected sequence
number bounds.
Victor Julien [Tue, 29 Nov 2022 09:22:02 +0000 (10:22 +0100)]
version: require libhtp 0.5.42
Victor Julien [Thu, 20 Oct 2022 13:24:52 +0000 (15:24 +0200)]
flow: cleanup and clarify ancient debug messages
Victor Julien [Thu, 20 Oct 2022 13:14:26 +0000 (15:14 +0200)]
decode: enforce layer limit through tunnel layers
Bug: #5686.
Philippe Antoine [Fri, 23 Sep 2022 09:01:03 +0000 (11:01 +0200)]
dcerpc: fix integer underflow
as input.len() can be 65536, it cannot be directly cast to u16
Ticket: #5557
Shivani Bhardwaj [Mon, 31 Oct 2022 11:04:47 +0000 (16:34 +0530)]
util/base64: fix heap buffer overflow
While updating the destination pointer, we were also adding the padded
bytes which are not a part of the decoded bytes. This led to running out
of space on the destination buffer.
Fix it by only incrementing destination buffer ptr by the number of
actual bytes that were decoded.
Ticket 5623
Victor Julien [Thu, 17 Nov 2022 11:17:01 +0000 (12:17 +0100)]
version: development towards 7.0.0-rc1
Jason Ish [Thu, 27 Oct 2022 19:14:07 +0000 (13:14 -0600)]
github-ci: non-root builder
All the GitHub CI jobs run as root inside a container. This means the
testing is done in a different environment than a developer typically
uses, running as a user.
Add a job that does the build as a non-root user.
Jason Ish [Mon, 28 Nov 2022 14:56:08 +0000 (08:56 -0600)]
rust: sha-1 is now sha1
This is the same crate, but renamed to be more consistent with the
RustCrypto project naming. Some recent discussion is available here:
https://github.com/RustCrypto/hashes/issues/438
Philippe Antoine [Tue, 22 Nov 2022 20:47:37 +0000 (21:47 +0100)]
smb: do not use tree id to match request and response
Completes commit
e94920b49f43bea4220a1bdf32297ec004e58059
This must be true for access to state ssn2vecoffset_map
Ticket: #5161
Jason Ish [Tue, 8 Nov 2022 10:50:55 +0000 (12:50 +0200)]
readthedocs: enable all formats
Ticket: #5654
Victor Julien [Wed, 23 Nov 2022 13:42:21 +0000 (14:42 +0100)]
smtp/files: don't modify prev file on open failure
Victor Julien [Wed, 23 Nov 2022 13:29:39 +0000 (14:29 +0100)]
files: always initialize inspect_window and min_inspect_depth
This is to make sure the files buffers are properly managed even
when there are no rules or when there are no file.data rules.
Bug: #5703.
Victor Julien [Wed, 23 Nov 2022 10:56:33 +0000 (11:56 +0100)]
rust/files: open file without trackid as pointer
Victor Julien [Wed, 23 Nov 2022 10:55:42 +0000 (11:55 +0100)]
rust/filecontainer: remove unused declaration
Victor Julien [Thu, 24 Nov 2022 11:01:13 +0000 (12:01 +0100)]
streaming/buffer: set hard limit on buffer size
Don't allow the buffer to grow beyond 1GiB. Add a once per thread
warning if it does reach it.
Bug: #5703.
Jason Ish [Fri, 18 Nov 2022 20:52:43 +0000 (14:52 -0600)]
github-ci/centos:7: cache yum RPMs
Jason Ish [Fri, 18 Nov 2022 20:46:15 +0000 (14:46 -0600)]
github-ci/windows: cache cargo artifacts
Jason Ish [Fri, 18 Nov 2022 20:45:29 +0000 (14:45 -0600)]
github-ci/macos: don't force cbindgen
We want to use binary from the cache if available.
Jason Ish [Fri, 18 Nov 2022 17:18:38 +0000 (11:18 -0600)]
github-ci: cache RPMs on dnf distros
Jason Ish [Fri, 18 Nov 2022 16:47:45 +0000 (10:47 -0600)]
github-ci: better .cargo caching
Philippe Antoine [Mon, 21 Nov 2022 16:06:44 +0000 (17:06 +0100)]
http2: fix decompression buffering
It was not enough to set Cursor position to 0,
also its inner Vec should be cleared.
This way, a new input gets written at the beginning of the
Cursor and its inner Vec...
Ticket: #5691
Philippe Antoine [Mon, 21 Nov 2022 15:21:19 +0000 (16:21 +0100)]
http2: support padded data frames
Ticket: #5691
Victor Julien [Tue, 22 Nov 2022 13:14:17 +0000 (14:14 +0100)]
src: unify how warnings specify ticket id's
Jason Ish [Wed, 19 Oct 2022 19:07:56 +0000 (13:07 -0600)]
afpacket/netmap: warn about mixed ips, ids/tap deprecation
Suricata already logs if AF_PACKET or Netmap are running in a mixed IPS
and IDS/TAP mode. As the behavior is undefined when these modes are
mixed, it is best to deprecate and to not allow this behavior. For now
warn that it will be unsupported and fail in Suricata 8.
Ticket: 5587
Philippe Antoine [Fri, 17 Jun 2022 13:00:31 +0000 (15:00 +0200)]
ci: remove unnecessary write permission to github workflow
Philippe Antoine [Tue, 1 Nov 2022 14:23:10 +0000 (15:23 +0100)]
ci: build with -Werror for -Wimplicit-int-conversion
So that CI gets red
Philippe Antoine [Fri, 4 Nov 2022 14:24:02 +0000 (15:24 +0100)]
detect: fix memory leak when parsing signature
Ticket: #5529
Victor Julien [Thu, 17 Nov 2022 20:59:55 +0000 (21:59 +0100)]
profiling: fix includes
Todd Mortimer [Mon, 31 Oct 2022 17:39:51 +0000 (17:39 +0000)]
swf-decompression: Disable by default.
Add an entry to the upgrade guide noting the change.
Ticket: #5632
Victor Julien [Thu, 17 Nov 2022 19:11:07 +0000 (20:11 +0100)]
ipfw: fix missing include
Victor Julien [Thu, 17 Nov 2022 19:10:57 +0000 (20:10 +0100)]
netmap: fix missing include
Jason Ish [Wed, 16 Nov 2022 16:48:55 +0000 (10:48 -0600)]
classification: continue processing on parse error
Instead of returning on the first line that fails to parse, log the
error and continue instead of returning.
The fail fast makes sense in test mode, but not in a normal run mode
where you don't want one bad line to abort processing the whole file.
This will still fail out in test mode.
Related issue: 4554
Philippe Antoine [Mon, 26 Sep 2022 15:06:38 +0000 (17:06 +0200)]
src: remove double includes
Keep the unconditional include to be sure it works
git grep '#include "' src/*.c | sort | uniq -c | awk '$1 > 1'
Philippe Antoine [Fri, 16 Sep 2022 12:46:42 +0000 (14:46 +0200)]
src: fix some include orders
So as to be able to get include removal right
Philippe Antoine [Tue, 2 Aug 2022 09:42:38 +0000 (11:42 +0200)]
src: remove obsolete comment
Should have been removed along by commit
82dba07579fcd188bc537b57c52eea4974f2d9e1
Philippe Antoine [Thu, 3 Nov 2022 09:09:11 +0000 (10:09 +0100)]
src: fix remaining cppclean warnings
Philippe Antoine [Tue, 1 Nov 2022 20:39:50 +0000 (21:39 +0100)]
unittest: fix unneeded includes as per cppclean
Especially because there is conditional inclusion from a header
Philippe Antoine [Fri, 23 Sep 2022 08:17:06 +0000 (10:17 +0200)]
util: fix includes for util-memcmp
u8_tolower is now in suricata-common.h
Fixes commit
19e94e93fab84c009c0aefd49809c91665a8fa33
Philippe Antoine [Tue, 2 Aug 2022 08:22:54 +0000 (10:22 +0200)]
ci: adds one build with hyperscan
Philippe Antoine [Mon, 1 Aug 2022 20:04:46 +0000 (22:04 +0200)]
ci: adds build with luajit
Philippe Antoine [Tue, 1 Nov 2022 14:23:43 +0000 (15:23 +0100)]
src: fix integer warnings
and adds defrag debug validations
Philippe Antoine [Fri, 11 Nov 2022 10:52:27 +0000 (11:52 +0100)]
tls: fix off by one in supported versions extension
Ticket: #5663
Jeff Lucovsky [Sun, 16 Oct 2022 14:13:19 +0000 (10:13 -0400)]
detect/bsize: Validate bsize values after parsing
Issue: 2982
This commit moves bsize validation with respect to content matches to
the post-parse validation stage. This allows bsize to consider all
content-related values, including those that follow the bsize keyword.
Jeff Lucovsky [Sun, 16 Oct 2022 14:12:13 +0000 (10:12 -0400)]
bsize/general: Remove unnecessary includes
This commit removes unused/commented out #include lines.
Jeff Lucovsky [Sun, 16 Oct 2022 14:08:26 +0000 (10:08 -0400)]
add to general: Typo fixup
Jeff Lucovsky [Tue, 9 Aug 2022 12:52:34 +0000 (08:52 -0400)]
netmap: Fix include file issues
Jeff Lucovsky [Mon, 18 May 2020 13:30:02 +0000 (09:30 -0400)]
doc: Update bsize documentation
This commit updates the bsize documentation
1. Describe what happens when "content" immediately precedes "bsize"
2. Include the operators and
3. Include examples using the operators.
Jeff Lucovsky [Thu, 27 Jan 2022 15:23:55 +0000 (10:23 -0500)]
detect/bsize: Semantic validation of bsize values
This commit adds validation of the bsize value(s) with the available
buffer size. Signatures are flagged if the bsize and buffer size are
incompatible.
Issue: 3682
Jeff Lucovsky [Mon, 18 May 2020 13:33:58 +0000 (09:33 -0400)]
tests/bsize: Test cases with preceding content
This commit adds test cases that validate behavior when "content"
immediately precedes "bsize".
Jeff Lucovsky [Fri, 21 Jan 2022 14:46:51 +0000 (09:46 -0500)]
general: Typo fixup
Jeff Lucovsky [Fri, 21 Jan 2022 14:45:56 +0000 (09:45 -0500)]
detect/content: Use SCCalloc instead of malloc/memset
This commit replaces a SCMalloc/memset with SCCalloc
Jeff Lucovsky [Sat, 13 Feb 2021 15:41:09 +0000 (10:41 -0500)]
detect/content: Consider distance in validation
Ticket: 2982
This commit validates that the content usage in a rule will not exceed
the dsize value.
Values of distance that cause the right edge to be exceeded are
considered an error and the signature will be rejected.
Shivani Bhardwaj [Mon, 31 Oct 2022 13:23:06 +0000 (18:53 +0530)]
util/base64: use padding var for calculations
jason taylor [Wed, 2 Nov 2022 19:51:33 +0000 (19:51 +0000)]
userguide: update tos keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Wed, 2 Nov 2022 19:41:29 +0000 (19:41 +0000)]
userguide: update fragoffset keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Fri, 28 Oct 2022 19:48:18 +0000 (19:48 +0000)]
userguide: update fragbits information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Thu, 20 Oct 2022 21:05:29 +0000 (21:05 +0000)]
userguide: update geoip information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Tue, 11 Oct 2022 22:00:21 +0000 (22:00 +0000)]
userguide: update id keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Fri, 7 Oct 2022 20:44:14 +0000 (20:44 +0000)]
userguide: update ipv6.hdr keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Fri, 7 Oct 2022 20:18:01 +0000 (20:18 +0000)]
userguide: update ipv4.hdr keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Thu, 6 Oct 2022 22:05:23 +0000 (22:05 +0000)]
userguide: update ip_proto keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Wed, 28 Sep 2022 23:58:03 +0000 (23:58 +0000)]
userguide: update sameip keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Wed, 28 Sep 2022 23:00:48 +0000 (23:00 +0000)]
userguide: update ipopts keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
jason taylor [Wed, 21 Sep 2022 23:22:44 +0000 (23:22 +0000)]
userguide: update ttl keyword information
Signed-off-by: jason taylor <jtfas90@gmail.com>
Philippe Antoine [Thu, 10 Nov 2022 12:17:49 +0000 (13:17 +0100)]
doc: update doc for HTTP file.data to server
Ticket: #4144
Completes
e587f6792afdb863cbe57e972bd395443f23d9d9
Philippe Antoine [Fri, 4 Nov 2022 14:35:30 +0000 (15:35 +0100)]
quic: use VecDeque
Ticket: #5637
Victor Julien [Wed, 9 Nov 2022 14:44:26 +0000 (16:44 +0200)]
security: disable setrlimit with asan
Various parts of ASAN will require creation of threads. At least
LSAN reporting and ASAN stack traces require this. Detect if we
run with ASAN and bypass the noproc setting with a warning.
Bug: #5661.
Philippe Antoine [Thu, 3 Nov 2022 10:02:07 +0000 (11:02 +0100)]
pcre: configurable paths for PCRE2 for include/lib
Ticket: #5572
Victor Julien [Tue, 1 Nov 2022 15:48:13 +0000 (16:48 +0100)]
ssl: add debug validation checks for recent changes
Make sure the assumptions are correct.
Philippe Antoine [Wed, 5 Oct 2022 19:21:41 +0000 (21:21 +0200)]
tls: fix buffer overread
Recently introduced by commit
4bab6e24e5e2cef29c9a5a6bee3263e4a3d47e76
Ticket: #5564
Philippe Antoine [Thu, 3 Nov 2022 15:13:21 +0000 (16:13 +0100)]
detect: avoids memory leak on ja3 signature parsing
If a later keyword enforces a protocol incompatible with ja3
Philippe Antoine [Thu, 3 Nov 2022 12:42:57 +0000 (13:42 +0100)]
clean: use SC_MD5_HEX_LEN instead of magic number 32
Philippe Antoine [Thu, 3 Nov 2022 12:27:10 +0000 (13:27 +0100)]
clean: replace MD5_STRING_LENGTH with more used SC_MD5_HEX_LEN
Philippe Antoine [Thu, 3 Nov 2022 12:26:07 +0000 (13:26 +0100)]
clean: remove useless * sizeof(char)
Philippe Antoine [Thu, 3 Nov 2022 12:20:25 +0000 (13:20 +0100)]
quic: ja3 code deduplication
As quic transactions are unidirectional, the same function is
used to get ja3 from client or from server.