]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
3 years agodetect-http-request-line: remove unittests 6865/head
Modupe Falodun [Tue, 25 Jan 2022 21:56:26 +0000 (22:56 +0100)] 
detect-http-request-line: remove unittests

These tests are reimplemented as Suricata-Verify

Task: 4911

3 years agodetect/hostbits: remove unittests 6861/head
Modupe Falodun [Mon, 24 Jan 2022 22:38:56 +0000 (23:38 +0100)] 
detect/hostbits: remove unittests

These tests are reimplemented as Suricata-Verify tests

Task: 4911

3 years agodetect/proto: remove unittests
Modupe Falodun [Mon, 24 Jan 2022 22:11:56 +0000 (23:11 +0100)] 
detect/proto: remove unittests

This test is reimplemented in Suricata-Verify

Task: 4911

3 years agofuzz: cleans all flow after one run
Philippe Antoine [Fri, 21 Jan 2022 12:40:08 +0000 (13:40 +0100)] 
fuzz: cleans all flow after one run

Completes commit e2370d6861990e9aba7b551e51cfa04d945f4510
for all the fuzz targets processing pcaps
using a generic function.

FlowShutdown is not used because it uses the loop to destroy
mutexes, which we want to reuse for fuzzing

3 years agodetect/frames: fix coverity warning 6860/head
Victor Julien [Tue, 25 Jan 2022 07:07:33 +0000 (08:07 +0100)] 
detect/frames: fix coverity warning

Harmless warning, but it was correct in that the code made no sense:
1497420 Dereference before null check

3 years agodetect/frames: fix crash when parsing bad rule
Victor Julien [Mon, 24 Jan 2022 22:30:51 +0000 (23:30 +0100)] 
detect/frames: fix crash when parsing bad rule

Indexing of Signature::init_data::smlists would fail for a rule that
used a frame w/o content, as the array would only be expanded when
adding a content. Adding a check to see if there list id is in bounds
is an implicit check for the "no content" case.

Bug #5011.

3 years agodetect/frames: fix error messages
Victor Julien [Sun, 23 Jan 2022 19:32:16 +0000 (20:32 +0100)] 
detect/frames: fix error messages

3 years agosmb/dce_iface: avoid deleting current ifaces from state
Eloy Pérez González [Fri, 22 Oct 2021 11:53:39 +0000 (13:53 +0200)] 
smb/dce_iface: avoid deleting current ifaces from state

The smb dce_iface keyword must match for all those dcerpc requests
and responses sent in the context of the given interface. They are
not matching as the current bind interfaces are deleted by any
non bind message.

Ticket: 4767

3 years agosmb/dce_iface: use DCERPC_TYPE_REQUEST
Eloy Pérez González [Fri, 22 Oct 2021 11:52:14 +0000 (13:52 +0200)] 
smb/dce_iface: use DCERPC_TYPE_REQUEST

The smb dce_iface keyword must match for all those dcerpc requests and
responses sent in the context of the given interface. They are not
matching because in rs_smb_tx_get_dce_iface, x.req_cmd is erroneously
compared with 1. Fix this by comparing with DCERPC_TYPE_REQUEST instead.

Ticket: 4767

3 years agosmb/dce_opnum: move range if to outer context
Eloy Pérez González [Fri, 22 Oct 2021 13:01:39 +0000 (15:01 +0200)] 
smb/dce_opnum: move range if to outer context

The smb dce_opnum matches all the opnums that are higher that the
indicated opnum. This is due the range comparison if was put in the
exact comparison context, and in case the opnum doesn't match exactly,
then the range comparison is triggered (the upper limit is always true).

Move the erroneus if to the outer context, as else option of the block
checks if comparison should be exact or range.

Ticket: 4767

3 years agosmb/dce_opnum: use DCERPC_TYPE_REQUEST
Eloy Pérez González [Fri, 22 Oct 2021 13:00:11 +0000 (15:00 +0200)] 
smb/dce_opnum: use DCERPC_TYPE_REQUEST

The smb dce_opnum keyword doesn't match the dcerpc requests/responses.
This occurs because in the rs_smb_tx_match_dce_opnum function, the
x.req_cmd is matched against the erroneous code 1. Fix this by using
DCERPC_TYPE_REQUEST for the comparison instead.

Ticket: 4767

3 years agodcerpc: remove prev_tx_call_id and clear_bind_cache from DCERPCState
Eloy Pérez González [Thu, 4 Nov 2021 14:20:14 +0000 (15:20 +0100)] 
dcerpc: remove prev_tx_call_id and clear_bind_cache from DCERPCState

remove those fields since are not used because of the removal of
handle_bind_cache.

3 years agodcerpc: avoid delete the rpc state interface context
Eloy Pérez González [Fri, 22 Oct 2021 13:32:41 +0000 (15:32 +0200)] 
dcerpc: avoid delete the rpc state interface context

The bug:
The dcerpc dce_iface keyword just match the packet following the bind. Only the
next request after the rpc is sent will match. However the expected behaviour it
that all the rpc requests/responses sent under the context of the given
interface would match.

In the Open Group c706 the following is indicated:

In 2.2.1 Binding-related Operations, indicates that one category of binding
operations are those that "operations that establish internal call routing
information for the server." (The other are to establish the protocol which is
not relevant here). And the following statement can be found:

Operations in the second category establish a set of mappings that the server
can use to route calls internally to the appropriate manager routine. This
routing is based on the interface and version, operation and any object
requested by the call.

It indicates that server routes (to call methods) are based on the operation,
interface and object.

- Operation: To indicate the method to call, and operation number is
             specified as indicated in the second step of 2.3.3.2 (Client
             Binding Steps).
- Interface: An interface is a set of remotely callable operations offered by a
             server and invokable by clients. (2.1.1.1)
- Object: Is the manager that implements the interface, as stated in section
          Interface and Manager Selection of 2.3.3.3. It is not mandatory, can
          be nil.

To call a method, a client must send a request message as defined in 2.6.4.9,
that contains these identifiers:

- opnum: The opnum field identifies the operation being invoked within the
         interface.
- p_cont_id (Context ID in Wireshark): The p_cont_id field holds a presentation
                                       context identifier that identifies the
                                       data representation and interface, as
                                       defined in 12.6.3.4 (Context Identifiers).
- object: The object field is contained if the PFC_OBJECT_UUID is set. (Could be
          interesting to create a keyword dce_object for matching this UUID)

Therefore, to get the correct method to invoke, the server must map the context
to the correct interface. This is negotiated by the bind request

Interfaces are first negotiated using the bind message (12.6.4.3), contained in
the p_context_elem array. Then they are accepted or rejected using the bind_ack
message (12.6.4.4).

Once these contexts are established, both client and server can use the context
id, which is the index of the p_context_elem array, to refer the interface they
are using.

Moreover, in the middle of the connection, the context can be changed with the
alter_context message.

This is way suricata shouldn't delete the bindack attribute, that contains
the contexts, used by match_backuuid. This is the only way to know the interface
a request message is referring to.

ticket: 4769
https://redmine.openinfosecfoundation.org/issues/4769

3 years agopgsql: fix defect found by coverity 6854/head
Juliana Fajardini [Fri, 21 Jan 2022 11:47:15 +0000 (11:47 +0000)] 
pgsql: fix defect found by coverity

Pgsql was using bitwise operations to assign password output config to
its context flags, but mixing that with logic negation of the default
value, resulting in the expressions having a constant value as result.

Bug: #5007

3 years agologging: change ownership of application log if needed
Jason Ish [Thu, 20 Jan 2022 18:08:33 +0000 (12:08 -0600)] 
logging: change ownership of application log if needed

When running with privilege dropping, the application log file
is opened before privileges are dropped resulting in Suricata
failing to re-open the file for file rotation.

If needed, chown the application to the run-as user/group after
opening.

Ticker #4523

3 years agostartup: initialize run as user info sooner
Jason Ish [Thu, 20 Jan 2022 17:40:24 +0000 (11:40 -0600)] 
startup: initialize run as user info sooner

Initialize the run-as user info after loading the config, but
before setting up logging (previously it was done while initializing
signal handlers). This will allow the log file to be given the
correct permissions if Suricata is configured to run as a non-root
user.

3 years agodpdk: adjust setting of MTU to the new DPDK API (21.11)
Lukas Sismis [Sun, 23 Jan 2022 12:41:19 +0000 (13:41 +0100)] 
dpdk: adjust setting of MTU to the new DPDK API (21.11)

3 years agogithub-ci: use curl -L for npcap: follow redirects 6836/head 6844/head
Jason Ish [Fri, 21 Jan 2022 05:21:08 +0000 (23:21 -0600)] 
github-ci: use curl -L for npcap: follow redirects

3 years agorust/pgsql: convert parsers to nom7 functions 6842/head
Pierre Chifflier [Fri, 21 Jan 2022 12:37:54 +0000 (13:37 +0100)] 
rust/pgsql: convert parsers to nom7 functions

3 years agodetect: fix possible leak found by coverity
Philippe Antoine [Fri, 21 Jan 2022 15:31:54 +0000 (16:31 +0100)] 
detect: fix possible leak found by coverity

Conditions to create the leak are likely not reachable,
but this is still a bad pattern.

3 years agoci: adds scorecard analysis GitHub workflow 6835/head
Catena cyber [Fri, 21 Jan 2022 14:21:46 +0000 (15:21 +0100)] 
ci: adds scorecard analysis GitHub workflow

3 years agopgsql: add initial support 6822/head
Juliana Fajardini [Wed, 31 Mar 2021 13:29:34 +0000 (14:29 +0100)] 
pgsql: add initial support

- add nom parsers for decoding most messages from StartupPhase and
SimpleQuery subprotocols
- add unittests
- tests/fuzz: add pgsql to confyaml

Feature: #4241

3 years agorust/applayer: add function for upgrading to TLS
Juliana Fajardini [Tue, 14 Sep 2021 19:05:26 +0000 (20:05 +0100)] 
rust/applayer: add function for upgrading to TLS

3 years agosmtp: use AppLayerResult instead of buffering 6819/head
Shivani Bhardwaj [Mon, 3 Jan 2022 14:14:53 +0000 (19:44 +0530)] 
smtp: use AppLayerResult instead of buffering

Also, remove tests that check for the removed buffers and any middle
states while parsing and buffering.

Ticket 4907

3 years agoquic: add quic.ua for matching user agent
Victor Julien [Sun, 16 Jan 2022 16:41:31 +0000 (17:41 +0100)] 
quic: add quic.ua for matching user agent

3 years agoquic: log user agent when available
Victor Julien [Sun, 16 Jan 2022 13:07:21 +0000 (14:07 +0100)] 
quic: log user agent when available

3 years agodetect/quic: add quic.sni sticky buffer
Victor Julien [Sat, 15 Jan 2022 18:24:46 +0000 (19:24 +0100)] 
detect/quic: add quic.sni sticky buffer

3 years agoquic: log sni; reduce number of transactions
Victor Julien [Sat, 15 Jan 2022 13:19:06 +0000 (14:19 +0100)] 
quic: log sni; reduce number of transactions

Only create transactions for long headers.

Store SNI in tx, log it.

3 years agodoc/quic: update for new quic.version logic
Victor Julien [Fri, 14 Jan 2022 20:12:48 +0000 (21:12 +0100)] 
doc/quic: update for new quic.version logic

3 years agoquic: log version as string
Victor Julien [Fri, 14 Jan 2022 15:31:34 +0000 (16:31 +0100)] 
quic: log version as string

Log as Q043, Q044, Q045, Q046. If the version is not supported/recognized,
log the 4 bytes as hex.

Only log for txs based on long headers.

3 years agoquic: redo quic.version; parser cleanups
Victor Julien [Fri, 14 Jan 2022 19:34:04 +0000 (20:34 +0100)] 
quic: redo quic.version; parser cleanups

Reimplement quic.version as sticky buffer.

Removed unused parts of the parser.

Set unidirectional tx flag to fix double matching.

3 years agodoc/quic: Add documentation for QUIC keywords
Emmanuel Thompson [Thu, 23 Sep 2021 20:54:58 +0000 (16:54 -0400)] 
doc/quic: Add documentation for QUIC keywords

3 years agodoc/quic: Add quic to eve json format
Emmanuel Thompson [Mon, 23 Aug 2021 22:58:55 +0000 (18:58 -0400)] 
doc/quic: Add quic to eve json format

3 years agoquic: Add QUIC App Layer
Emmanuel Thompson [Thu, 16 Jul 2020 15:04:52 +0000 (11:04 -0400)] 
quic: Add QUIC App Layer

Parses quic and logs a CYU hash for gquic frames

3 years agoDoc: Fix typos in documentation of suricata.yaml.
Andreas Dolp [Tue, 18 Jan 2022 18:27:40 +0000 (19:27 +0100)] 
Doc: Fix typos in documentation of suricata.yaml.

3 years agonfs4_records: add unittests
Sam Muhammed [Fri, 14 Jan 2022 00:25:12 +0000 (02:25 +0200)] 
nfs4_records: add unittests

Add unittests for setclientid, readdir records
Task #4866

3 years agorust: simplify bits parser annotations 6814/head
Pierre Chifflier [Tue, 18 Jan 2022 21:38:19 +0000 (22:38 +0100)] 
rust: simplify bits parser annotations

3 years agorust/smb: simplify bits parser annotations
Pierre Chifflier [Tue, 18 Jan 2022 21:21:07 +0000 (22:21 +0100)] 
rust/smb: simplify bits parser annotations

3 years agorust: add 'bits' combinator to simplify nom bits parsers
Pierre Chifflier [Tue, 18 Jan 2022 20:56:37 +0000 (21:56 +0100)] 
rust: add 'bits' combinator to simplify nom bits parsers

Add a specialized version of the 'bits' nom combinator so adding
bits-level parsers does not require type annotations.

3 years agodetect: do not upgrade base64 decode when fuzzing 6810/head
Philippe Antoine [Thu, 9 Dec 2021 19:43:56 +0000 (20:43 +0100)] 
detect: do not upgrade base64 decode when fuzzing

As fuzzing will put a very big value, and then
ThreadCtxDoInit will try to allocate it,
ending in out of memory

3 years agoproto-detect: set flags in packet direction for UDP
Victor Julien [Tue, 18 Jan 2022 14:17:12 +0000 (15:17 +0100)] 
proto-detect: set flags in packet direction for UDP

3 years agoproto-detect: fix UDP not setting alproto_ts/tc
Victor Julien [Tue, 18 Jan 2022 13:52:13 +0000 (14:52 +0100)] 
proto-detect: fix UDP not setting alproto_ts/tc

This would lead to the `app-layer-protocol` keyword not matching correctly.

3 years agodetect: xor transform 6809/head
Philippe Antoine [Fri, 22 Oct 2021 17:47:49 +0000 (19:47 +0200)] 
detect: xor transform

Ticket: 3285

The xor transform applies xor decoding to a buffer, with a key
specified as an option in hexadecimal. Arbitrary key sizes are
accepted.

3 years agodetect: adds test with invalid uint mode <<
Philippe Antoine [Thu, 18 Feb 2021 14:43:16 +0000 (15:43 +0100)] 
detect: adds test with invalid uint mode <<

3 years agodetect: use generic functions for icode parsing
Philippe Antoine [Wed, 17 Feb 2021 16:28:51 +0000 (17:28 +0100)] 
detect: use generic functions for icode parsing

3 years agofuzz: cleans all flow after one run
Philippe Antoine [Thu, 16 Dec 2021 09:23:40 +0000 (10:23 +0100)] 
fuzz: cleans all flow after one run

Makes the fuzz target more stateless

And manages to find bugs on the FlowFree path

3 years agofuzz: use parsed rules in sigpcap target
Philippe Antoine [Thu, 9 Dec 2021 14:06:24 +0000 (15:06 +0100)] 
fuzz: use parsed rules in sigpcap target

Ticket: 4125

As commit d21a252238fd766d3c2ec4c2d165d429dad0d85a
But for sigpcap target as well

3 years agodns: wrap with HAVE_LUA
Philippe Antoine [Thu, 9 Dec 2021 09:24:50 +0000 (10:24 +0100)] 
dns: wrap with HAVE_LUA

This is just code style, to minimize the compiled code.

3 years agofuzz: enable template protocols
Philippe Antoine [Thu, 9 Dec 2021 08:57:05 +0000 (09:57 +0100)] 
fuzz: enable template protocols

Ticket: 4125

3 years agoenip: fix too restrictive check in probing parser
Philippe Antoine [Wed, 15 Dec 2021 20:11:05 +0000 (21:11 +0100)] 
enip: fix too restrictive check in probing parser

As is shown later in the code, enip_len can be
ENIP_LEN_REGISTER_SESSION which is 4, which is
smaller than sizeof(ENIPEncapHdr) which is 24

3 years agofuzz: use fuzzing confyaml for protodetect target
Philippe Antoine [Wed, 15 Dec 2021 19:48:47 +0000 (20:48 +0100)] 
fuzz: use fuzzing confyaml for protodetect target

As is done for other targets,
so that all app-layer protocols are enabled,
even the ones disabled by default such as enip

And resets protocol detection every time we try
so that probing_parser_toserver_alproto_masks are fresh.

3 years agodoc/update: mention change of default rule path
Jason Ish [Thu, 16 Dec 2021 22:27:42 +0000 (16:27 -0600)] 
doc/update: mention change of default rule path

3 years agodoc: update rule section to current default
Jason Ish [Thu, 16 Dec 2021 22:26:47 +0000 (16:26 -0600)] 
doc: update rule section to current default

Update the rule section to better describe whats seen in a default
install of Suricata including a link to the rule management section.

3 years agorule-path: always use $localstatedir/lib/suricata/rules
Jason Ish [Thu, 16 Dec 2021 22:24:38 +0000 (16:24 -0600)] 
rule-path: always use $localstatedir/lib/suricata/rules

Always use the same path for default-rule-path whether or not
Suricata-Update will be installed as part of the Suricata install or
not.

This provides consistency, and maps better to our recommendation that
Suricata-Update be used to manage rules.

Probably should have been done as part of
55852d0de3151517b6cb22c736cb2de8a893cb11.

Ticket #4912.

3 years agotelnet: initial support with frames
Victor Julien [Tue, 4 Jan 2022 15:43:24 +0000 (16:43 +0100)] 
telnet: initial support with frames

Bootstrapped using setup script. Basic option parsing for purpose
of tagging frames.

3 years agohtp: improve request/response size accuracy
Victor Julien [Sun, 12 Dec 2021 07:11:46 +0000 (08:11 +0100)] 
htp: improve request/response size accuracy

3 years agohtp: implement basic request/response frames
Victor Julien [Fri, 10 Dec 2021 17:19:06 +0000 (18:19 +0100)] 
htp: implement basic request/response frames

3 years agossl: implement frames for SSLv3 and TLS
Victor Julien [Fri, 3 Dec 2021 07:17:37 +0000 (08:17 +0100)] 
ssl: implement frames for SSLv3 and TLS

3 years agosmb: use derive AppLayerFrameType
Jason Ish [Wed, 8 Dec 2021 23:08:07 +0000 (17:08 -0600)] 
smb: use derive AppLayerFrameType

3 years agosmb: implement frames
Victor Julien [Mon, 6 Dec 2021 10:35:23 +0000 (11:35 +0100)] 
smb: implement frames

SMB1 record parsing code simplification.

Frames:

    nbss.pdu
    nbss.hdr
    nbss.data

    smb1.pdu
    smb1.hdr
    smb1.data

    smb2.pdu
    smb2.hdr
    smb2.data

    smb3.pdu
    smb3.hdr
    smb3.data

The smb* frames are created for valid SMB records.

3 years agodetect/frames: implement 'frame' keyword
Victor Julien [Fri, 3 Dec 2021 07:14:34 +0000 (08:14 +0100)] 
detect/frames: implement 'frame' keyword

Implement a special sticky buffer to select frames for inspection.

This keyword takes an argument to specify the per protocol frame type:

    alert <app proto name> ... frame:<specific frame name>

Or it can specify both in the keyword:

    alert tcp ... frame:<app proto name>.<specific frame name>

The latter is useful in some cases like http, where "http" applies to
both HTTP and HTTP/2.

    alert http ... frame:http1.request;
    alert http1 ... frame:request;

Examples:

    tls.pdu
    smb.smb2.hdr
    smb.smb3.data

Consider a rule like:

    alert tcp ... flow:to_server; content:"|ff|SMB"; content:"some smb 1 issue";

this will scan all toserver TCP traffic, where it will only be limited by a port,
depending on how rules are grouped.

With this work we'll be able to do:

    alert smb ... flow:to_server; frame:smb1.data; content:"some smb 1 issue";

This rule will only inspect the data portion of SMB1 frames. It will not affect
any other protocol, and it won't need special patterns to "search" for the
SMB1 frame in the raw stream.

3 years agodetect/frames: limit mixing frames and other detection
Victor Julien [Fri, 3 Dec 2021 07:15:15 +0000 (08:15 +0100)] 
detect/frames: limit mixing frames and other detection

Don't allow mixing of payload/stream/tx and frame keywords. Initial
support is only for 'pure' frame inspection.

3 years agodetect/analyzer: add frame support
Victor Julien [Fri, 3 Dec 2021 07:18:40 +0000 (08:18 +0100)] 
detect/analyzer: add frame support

3 years agodetect/engine: support frames
Victor Julien [Fri, 3 Dec 2021 06:53:32 +0000 (07:53 +0100)] 
detect/engine: support frames

Implement the low level detect engine support for inspecting frames,
including MPM, transforms and inspect API's.

3 years agoeve/alert: add support for logging frame
Victor Julien [Fri, 3 Dec 2021 06:47:29 +0000 (07:47 +0100)] 
eve/alert: add support for logging frame

If detection was done in a frame, the frame will be added to the
eve.alert output.

3 years agoeve: implement frame logging
Victor Julien [Fri, 3 Dec 2021 06:45:28 +0000 (07:45 +0100)] 
eve: implement frame logging

This is mostly to assist development and QA. It produces too much data
for practical use.

3 years agocbindgen: ignore frames module
Jason Ish [Tue, 7 Dec 2021 21:42:23 +0000 (15:42 -0600)] 
cbindgen: ignore frames module

3 years agorust: derive macro for app-layer frame type
Jason Ish [Wed, 8 Dec 2021 23:06:04 +0000 (17:06 -0600)] 
rust: derive macro for app-layer frame type

3 years agorust/applayer: create trait for app-layer frame types
Jason Ish [Wed, 8 Dec 2021 23:06:37 +0000 (17:06 -0600)] 
rust/applayer: create trait for app-layer frame types

3 years agoapp/frames: implement rust API
Jason Ish [Mon, 13 Dec 2021 19:12:13 +0000 (20:12 +0100)] 
app/frames: implement rust API

3 years agoapp-layer: move app_progress forward on errors as well
Victor Julien [Tue, 21 Dec 2021 08:59:15 +0000 (09:59 +0100)] 
app-layer: move app_progress forward on errors as well

In case of APP_LAYER_ERROR still move the app_progress forward.
This helps validation of frame offsets and should be harmless
otherwise.

3 years agoapp/frames: initial support
Victor Julien [Fri, 3 Dec 2021 06:40:56 +0000 (07:40 +0100)] 
app/frames: initial support

The idea of stream frames is that the applayer parsers can tag PDUs and
other arbitrary frames in the stream while parsing. These frames can then
be inspected from the rule language. This will allow rules that are more
precise and less costly.

The frames are stored per direction in the `AppLayerParserState` and will only
be initialized when actual frames are in use. The per direction storage has a
fixed size static portion and dynamic support for a larger number. This is done
for effeciency.

When the Stream Buffer slides, frames are updated as they use offsets relative
to the stream. A negative offset is used for frames that started before the
current window.

Frames have events to inspect/log parser errors that don't fit the TX model.

Frame id starts at 1. So implementations can keep track of frame ids where 0
is not set.

Frames affect TCP window sliding. The frames keep a "left edge" which
signifies how much data to keep for frames that are still in progress.

3 years agoapp/frames: implement name to id API for frames
Victor Julien [Fri, 3 Dec 2021 06:42:22 +0000 (07:42 +0100)] 
app/frames: implement name to id API for frames

3 years agostream: add util function to get 'usable' data
Victor Julien [Sat, 18 Dec 2021 18:11:40 +0000 (19:11 +0100)] 
stream: add util function to get 'usable' data

3 years agoci: do not use ppa for cocci 6802/head
Philippe Antoine [Mon, 17 Jan 2022 14:14:54 +0000 (15:14 +0100)] 
ci: do not use ppa for cocci

As this version segfaults

3 years agorust/http2: convert parser to nom7 functions (HTTP2 ranges)
Pierre Chifflier [Wed, 12 Jan 2022 15:41:15 +0000 (16:41 +0100)] 
rust/http2: convert parser to nom7 functions (HTTP2 ranges)

3 years agorust/http2: convert parser to nom7 functions (HTTP2 core functions)
Pierre Chifflier [Wed, 12 Jan 2022 15:17:40 +0000 (16:17 +0100)] 
rust/http2: convert parser to nom7 functions (HTTP2 core functions)

3 years agodpdk: fix received/error counters
Lukas Sismis [Wed, 15 Dec 2021 13:24:55 +0000 (14:24 +0100)] 
dpdk: fix received/error counters

3 years agotests/pppoe: clean up more tests to use PASS/FAIL macros
Victor Julien [Mon, 17 Jan 2022 12:02:51 +0000 (13:02 +0100)] 
tests/pppoe: clean up more tests to use PASS/FAIL macros

3 years agopppoe: fix protocol field length variation
Steven Ottenhoff [Thu, 13 Jan 2022 13:05:58 +0000 (13:05 +0000)] 
pppoe: fix protocol field length variation

Detect when protocol field is not a 16 bit field.
Added tests to prove logic

Ticket: 4810

3 years agotest/pppoe: refactor to use FAIL/PASS macros
Steven Ottenhoff [Thu, 13 Jan 2022 12:38:01 +0000 (12:38 +0000)] 
test/pppoe: refactor to use FAIL/PASS macros

3 years agodetect-file-data: remove SMTP unittests
Modupe Falodun [Fri, 14 Jan 2022 15:53:28 +0000 (16:53 +0100)] 
detect-file-data: remove SMTP unittests

These tests are reimplemented as Suricata-verify tests

Task: 4938

3 years agooutput/alert: don't call basic logging twice
Eric Leblond [Mon, 17 Jan 2022 08:31:06 +0000 (09:31 +0100)] 
output/alert: don't call basic logging twice

Issue: 4106

3 years agostream: suppress noisy debug message
Victor Julien [Fri, 14 Jan 2022 10:48:16 +0000 (11:48 +0100)] 
stream: suppress noisy debug message

3 years agostream: fix stream pruning being too aggressive 6781/head
Victor Julien [Thu, 13 Jan 2022 11:13:43 +0000 (12:13 +0100)] 
stream: fix stream pruning being too aggressive

Pruning of StreamBufferBlocks could remove blocks that fell entirely
after the target offset due to a logic error. This could lead to data
being evicted that was still meant to be processed in theapp-layer
parsers.

Bug: #4953.

3 years agostream: debug code for showing segment list state
Victor Julien [Thu, 13 Jan 2022 11:12:56 +0000 (12:12 +0100)] 
stream: debug code for showing segment list state

3 years agodetect: Avoid recomputing ntohl() in addr match 6779/head
Jeff Lucovsky [Sun, 26 Dec 2021 15:22:34 +0000 (10:22 -0500)] 
detect: Avoid recomputing ntohl() in addr match

This commit makes a small optimization when comparing IPv4 and IPv6
addresses by making the host order value invariant and calculating the
value once, before entering the loop.

3 years agofile: define own variable instead of PATH_MAX
Philippe Antoine [Wed, 8 Dec 2021 20:14:54 +0000 (21:14 +0100)] 
file: define own variable instead of PATH_MAX

to be used for maximum size of file names,
and not depend on the OS

3 years agossl: fix int warnings
Philippe Antoine [Mon, 6 Dec 2021 08:44:12 +0000 (09:44 +0100)] 
ssl: fix int warnings

especially increasing padding_len size

3 years agosmtp: fix int warnings
Philippe Antoine [Mon, 6 Dec 2021 08:36:14 +0000 (09:36 +0100)] 
smtp: fix int warnings

and explicitly truncating filename's length

3 years agoapp: fix int warnings in generic app files
Philippe Antoine [Mon, 6 Dec 2021 08:26:54 +0000 (09:26 +0100)] 
app: fix int warnings in generic app files

3 years agohttp: : fix int warnings
Philippe Antoine [Mon, 6 Dec 2021 08:22:52 +0000 (09:22 +0100)] 
http: : fix int warnings

Explicitly truncate file names to UINT16_MAX

Before, they got implicitly truncated, meaning a UINT16_MAX + 1
file name, went to 0 file name (because of modulo 65536)

3 years agoftp: fix int warnings
Philippe Antoine [Mon, 6 Dec 2021 08:11:09 +0000 (09:11 +0100)] 
ftp: fix int warnings

Explicitly truncate a file name if it is longer
than UINT16_MAX

3 years agolog: Coverity REVERSE_INULL warnings
Jeff Lucovsky [Tue, 21 Sep 2021 13:52:11 +0000 (09:52 -0400)] 
log: Coverity REVERSE_INULL warnings

This commit addresses Coverity reported "REVERSE_INULL" warnings.

Issue: 4699

3 years agodoc: fix typo lenght/length
Philippe Antoine [Thu, 6 Jan 2022 13:07:21 +0000 (14:07 +0100)] 
doc: fix typo lenght/length

3 years agonfs4_records: add unittests for nom7 parsers
Sam Muhammed [Fri, 7 Jan 2022 17:27:06 +0000 (19:27 +0200)] 
nfs4_records: add unittests for nom7 parsers

Task #4866

3 years agonfs4_records: add missing field to res_sequence_ok()
Sam Muhammed [Mon, 10 Jan 2022 23:52:34 +0000 (01:52 +0200)] 
nfs4_records: add missing field to res_sequence_ok()

Missing _seqid in sequence op struct left a trailing four zeros
that are parsed by nfs4_res_compound_command() as a cmd
causing a Switch Error Code

3 years agonfs3-records: add unittests to nom7 parsers
Sam Muhammed [Sun, 2 Jan 2022 05:31:34 +0000 (07:31 +0200)] 
nfs3-records: add unittests to nom7 parsers

Task #4866

3 years agonfs3-records: add missing fields and update parsers
Sam Muhammed [Sun, 2 Jan 2022 04:57:39 +0000 (06:57 +0200)] 
nfs3-records: add missing fields and update parsers

Add missing fields to some record structures and
update their respective parsers

3 years agonfs2-records: add unittests for nom7 parsers
Sam Muhammed [Mon, 27 Dec 2021 12:19:27 +0000 (14:19 +0200)] 
nfs2-records: add unittests for nom7 parsers

Task #4866