]>
git.ipfire.org Git - thirdparty/suricata.git/log
Shivani Bhardwaj [Thu, 8 Jul 2021 12:12:07 +0000 (17:42 +0530)]
smtp: fix clang fmt
Shivani Bhardwaj [Fri, 25 Jun 2021 11:42:22 +0000 (17:12 +0530)]
nfs: fix comment
Shivani Bhardwaj [Thu, 24 Jun 2021 10:42:55 +0000 (16:12 +0530)]
nfs: Add rust registration function
Get rid of the C glue code and move registration completely to Rust.
Shivani Bhardwaj [Sat, 26 Jun 2021 11:13:35 +0000 (16:43 +0530)]
nfs: add missing code from rust impl of fns
Shivani Bhardwaj [Fri, 21 May 2021 10:01:16 +0000 (15:31 +0530)]
nfs: Change fn sign as per rust registration requirement
Registering parsers in Rust requires signatures to be a certain way and
compatible with C. Change signatures of all the functions.
Probe fn has also been changed to return AppProto as required by the new
fn signature.
Shivani Bhardwaj [Sat, 19 Jun 2021 07:53:14 +0000 (13:23 +0530)]
smb: Add rust registration function
Get rid of the C glue code and move registration completely to Rust.
Shivani Bhardwaj [Tue, 29 Jun 2021 09:30:07 +0000 (15:00 +0530)]
smb: add missing code from rust impl of fns
Shivani Bhardwaj [Fri, 18 Jun 2021 11:40:37 +0000 (17:10 +0530)]
smb: Change fn sign as per rust registration requirement
Registering parsers in Rust requires signatures to be a certain way and
compatible with C. Change signatures of all the functions.
Shivani Bhardwaj [Mon, 28 Jun 2021 11:55:55 +0000 (17:25 +0530)]
smb: add constants
Shivani Bhardwaj [Mon, 21 Jun 2021 11:06:42 +0000 (16:36 +0530)]
rust/core: Add flow flags
Jason Ish [Fri, 14 May 2021 15:29:54 +0000 (09:29 -0600)]
flow: provide flags accessor function
Add an accessor function for flow flags. To be used by Rust where
the flow struct is an opaque data type.
Shivani Bhardwaj [Thu, 6 May 2021 12:01:04 +0000 (17:31 +0530)]
rust/applayer: add more externs
Victor Julien [Mon, 4 Jan 2021 21:10:08 +0000 (22:10 +0100)]
stream: check if ACK packet is outdated
Outdated packets are ACK packets w/o data that have an ACK value
lower than our last_ack and also don't have an SACK records that
are new.
This can happen when some packets come in later than others (possibly
due to different paths taken).
Victor Julien [Fri, 8 Jan 2021 07:59:29 +0000 (08:59 +0100)]
stream/sack: clean up includes
Victor Julien [Mon, 4 Jan 2021 21:10:58 +0000 (22:10 +0100)]
stream/sack: minor debug improvements
Victor Julien [Thu, 31 Dec 2020 09:53:08 +0000 (10:53 +0100)]
stream: minor debug additions
Shivani Bhardwaj [Wed, 24 Feb 2021 08:05:37 +0000 (13:35 +0530)]
doc/dcerpc: add proto keywords
Sascha Steinbiss [Sat, 26 Jun 2021 11:40:09 +0000 (13:40 +0200)]
mqtt: enable in config and remove misleading comment
Victor Julien [Thu, 1 Jul 2021 14:31:35 +0000 (16:31 +0200)]
stream: update memcaps in code to match config
Philippe Antoine [Wed, 9 Jun 2021 10:09:23 +0000 (12:09 +0200)]
app-layer/pd: review bailout conditions
To take TCP window into account
And to actually bail out if we received too much data
where the limit is configured by stream.reassembly.depth
Victor Julien [Wed, 21 Apr 2021 13:20:49 +0000 (15:20 +0200)]
app-layer/pd: only consider actual available data
For size limit checks consider only available data at the stream start
and before any GAPS.
The old check would consider too much data if there were temporary gaps,
like when a data packet was in-window but (far) ahead of the expected
segment.
Victor Julien [Fri, 4 Jun 2021 13:31:33 +0000 (15:31 +0200)]
streaming/buffer: account sbb data size
When tracking data track the size of the blocks so that in case
of gaps we can still know how much data we hold.
Juliana Fajardini [Tue, 29 Jun 2021 21:05:21 +0000 (22:05 +0100)]
detect/iprep: convert to FAIL/PASS API
Philippe Antoine [Mon, 21 Jun 2021 07:57:09 +0000 (09:57 +0200)]
modbus: do not claim to handle gaps
showipintbri [Thu, 10 Jun 2021 21:32:34 +0000 (17:32 -0400)]
doc: Grammar Correction
Shivani Bhardwaj [Mon, 21 Jun 2021 18:35:06 +0000 (00:05 +0530)]
counters: only print alerts if stats are enabled
Juliana Fajardini [Mon, 21 Jun 2021 09:50:04 +0000 (10:50 +0100)]
detect: fix typos and update copyright year
Juliana Fajardini [Thu, 17 Jun 2021 16:18:09 +0000 (17:18 +0100)]
detect: fix bug where rule without sid is accepted
Before, if Suricata parsed a rule without a 'sid' option, instead of
failing that rule, the rule was parsed and attributed a sid 0.
Changes to:
detect-parse:
- add logic to filter out rules without sid;
- change unittest which didn't have a sid, but used to pass.
detect-sid: add unittest for rules without sid or with sid: 0
Philippe Antoine [Mon, 21 Jun 2021 08:04:10 +0000 (10:04 +0200)]
fuzz: only build fuzz_sigpcap_aware if asked
With the other fuzz targets, and do not build it if fuzzpcap
is available but we did not want to build the fuzz targets
Sascha Steinbiss [Tue, 22 Jun 2021 07:33:24 +0000 (09:33 +0200)]
rust: fix warnings with nightly
Eric Leblond [Fri, 28 May 2021 10:19:45 +0000 (12:19 +0200)]
stream/tcp: limit ACK validation
Only limit ACK value validation for packet where the ACK bit is
set.
Eric Leblond [Fri, 28 May 2021 10:19:38 +0000 (12:19 +0200)]
stream/tcp: don't reject on bad ack
Not using a packet for the streaming analysis when a non zero
ACK value and ACK bit was unset was leading to evasion as it was
possible to start a session with a SYN packet with a non zero ACK
value to see the full TCP stream to escape all stream and application
layer detection.
This addresses CVE-2021-35063.
Fixes: fa692df37 ("stream: reject broken ACK packets")
Ticket: #4504.
Eric Leblond [Fri, 28 May 2021 10:19:19 +0000 (12:19 +0200)]
stream/tcp: update ack handling logic
Only update the ack value of a session for regular packets when
the ACK bit is set.
Philippe Antoine [Tue, 9 Mar 2021 20:00:36 +0000 (21:00 +0100)]
dns: improve probing parser
Checks opcode is valid
Checks additional_rr do not exceed message length
Better logic for incomplete cases
Victor Julien [Tue, 15 Jun 2021 13:14:55 +0000 (15:14 +0200)]
detect/files: fix buffer tracking with multiple files
Victor Julien [Mon, 21 Jun 2021 19:10:55 +0000 (21:10 +0200)]
mqtt: move sub/unsub limits into app-layer config
Sascha Steinbiss [Mon, 10 May 2021 12:54:47 +0000 (14:54 +0200)]
detect/mqtt: add topic inspection limit
We add a new 'mqtt.(un)subscribe-topic-match-limit' option
to allow a user to specify the maximum number of topics in
a MQTT SUBSCRIBE or UNSUBSCRIBE message to be evaluated
in detection.
Philippe Antoine [Thu, 22 Apr 2021 08:28:15 +0000 (10:28 +0200)]
smtp: null terminate before calling strtoul
by copying in a temporary buffer
as is done in ByteExtractString
Philippe Antoine [Thu, 29 Apr 2021 09:57:15 +0000 (11:57 +0200)]
swf: right input length for decompression
Philippe Antoine [Mon, 12 Apr 2021 14:56:33 +0000 (16:56 +0200)]
dcerpc: handles bigger inputs than 2^16
By comparing integers with the largest size
Philippe Antoine [Thu, 6 May 2021 07:25:49 +0000 (09:25 +0200)]
detect: use u32 for InspectionBufferMultipleForList
So that we do not have an endless loop casting index to
u16 and having more than 65536 buffers in one transaction
Changes for all protocols, even ones where it is impossible
to have such a pattern, so as to avoid bad pattern copy/paste
in the future
Victor Julien [Thu, 13 May 2021 06:06:11 +0000 (08:06 +0200)]
detect: set event if max inspect buffers exceeded
If a parser exceeds 1024 buffers we stop processing them and
set a detect event instead. This is to avoid parser bugs as well as
crafted bad traffic leading to resources starvation due to excessive
loops.
Victor Julien [Thu, 13 May 2021 05:50:12 +0000 (07:50 +0200)]
detect: fix multi inspect buffer issue; clean up
Fix multi inspect buffer API causing cleanup logic in the single
inspect buffer paths. This could lead to a buffer overrun in the
"to clear" logic.
Multi buffers now use InspectionBufferSetupMulti instead of
InspectionBuffer. This is enforced by a check in debug validation.
Simplify the multi inspect buffer setup code and update the callers.
Victor Julien [Fri, 14 May 2021 05:53:55 +0000 (07:53 +0200)]
detect: reformat events table
Philippe Antoine [Tue, 16 Mar 2021 12:07:16 +0000 (13:07 +0100)]
nfs: improve probing parser
Checks credentials flavor is known
Philippe Antoine [Tue, 9 Mar 2021 14:54:16 +0000 (15:54 +0100)]
enip: improve probing parser
Strict length for register sessions
NOP command must have options=0
Philippe Antoine [Fri, 11 Jun 2021 12:13:44 +0000 (14:13 +0200)]
config: fix null dereference in MacSetRegisterFlowStorage
Crash happens with
--set outputs.eve-json.types.files.force-magic=yes
Philippe Antoine [Mon, 31 May 2021 07:32:33 +0000 (09:32 +0200)]
modbus: use ascii character classes while parsin rule
As the rust regex crate is unicode aware, which was
not the case of the C version
Philippe Antoine [Thu, 6 May 2021 11:30:49 +0000 (13:30 +0200)]
rust: SCLogDebug is real nop when built as release
Before, even if there were no outputs, all the arguments
were evaluated, which could turn expensive
All variables which are used only in certain build configurations
are now prefixed by underscore to avoid warnings
Victor Julien [Thu, 10 Jun 2021 19:03:31 +0000 (21:03 +0200)]
http2: set Debug on structs
Victor Julien [Wed, 9 Jun 2021 07:23:07 +0000 (09:23 +0200)]
unittests: optimize RunmodeIsUnittests()
Victor Julien [Fri, 11 Jun 2021 07:52:11 +0000 (09:52 +0200)]
stream: packet to stream flags macro
Victor Julien [Fri, 11 Jun 2021 08:52:25 +0000 (10:52 +0200)]
packets: more detailed entry debug for detect/stream
Victor Julien [Mon, 7 Jun 2021 11:29:11 +0000 (13:29 +0200)]
files: construct with default, free on drop
Update protocols.
Victor Julien [Mon, 7 Jun 2021 09:34:31 +0000 (11:34 +0200)]
files: implement default support
Philippe Antoine [Fri, 4 Jun 2021 08:28:10 +0000 (10:28 +0200)]
rust: fix app-layer parser flags
This especially allows for SSH bypass to work
Jeff Lucovsky [Mon, 24 May 2021 12:03:02 +0000 (08:03 -0400)]
decode/vxlan: Delay var init until needed
This commit modifies the var initialization slightly until after
integrity checks have been performed.
Jeff Lucovsky [Mon, 24 May 2021 12:02:45 +0000 (08:02 -0400)]
general/typo: Correct typo
Jeff Lucovsky [Mon, 24 May 2021 12:01:58 +0000 (08:01 -0400)]
decode: Eliminate NULL pkt checks
This commit removes the NULL pkt check that each decoder performs as
this is a "can't happen" case.
Mats Klepsland [Thu, 27 May 2021 10:02:55 +0000 (12:02 +0200)]
thresholds: Fix buffer overflow in threshold context
th_entry is resized using ThresholdHashRealloc() every time a rule with
a threshold using by_rule tracking is added. The problem is that this is
done before the rules are reordered, so occasionally a rule with by_rule
tracking gets a higher signature number (after reordering) than the
number of th_entries allocated, causing Suricata to crash.
This commit fixes this by allocating th_entries after all the rules are
loaded and reordered.
Backtrace from core dump:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000000000051b381 in ThresholdHandlePacket (p=p@entry=0x7fb0080f3960, lookup_tsh=0x51, new_tsh=new_tsh@entry=0x7fb016c316e0, td=td@entry=0x14adedf0, sid=
9800979 , gid=1, pa=0x7fb0080f3b18)
at detect-engine-threshold.c:415
415>---- if (TIMEVAL_DIFF_SEC(p->ts, lookup_tsh->tv1) < td->seconds) {
Bug #4503.
Mats Klepsland [Thu, 27 May 2021 09:04:15 +0000 (11:04 +0200)]
thresholds: syntax fixes
Fix syntax of if statement in SigGetThresholdTypeIter()
Mats Klepsland [Thu, 27 May 2021 08:59:36 +0000 (10:59 +0200)]
thresholds: remove unneeded function argument
Remove packet pointer from SigGetThresholdTypeIter() as it is
unused.
Juliana Fajardini [Wed, 2 Jun 2021 12:29:09 +0000 (13:29 +0100)]
doc/eve: common fields and alert updates
- update examples for both
- change app_proto from alert field to common field, as
per JsonBuilder's changes.
Juliana Fajardini [Wed, 2 Jun 2021 12:16:46 +0000 (13:16 +0100)]
doc/eve: fix typos
Jeff Lucovsky [Wed, 2 Jun 2021 11:31:20 +0000 (07:31 -0400)]
output: Fix possible null deref
This commit corrects an issue uncovered by Coverity. See the redmine
issue for details: https://redmine.openinfosecfoundation.org/issues/4495
Philippe Antoine [Thu, 22 Apr 2021 07:41:30 +0000 (09:41 +0200)]
http2: only mimic http1 request if there is one
That may not be the case in midstream/async configurations
Jason Ish [Fri, 21 May 2021 17:06:47 +0000 (11:06 -0600)]
makefile: don't include the whole test/ directory
Including the whole directory results in .deps files ending up
in the distribution archive which shouldn't be there. Instead
we have to list all the test sources individually.
Jeff Lucovsky [Sat, 22 May 2021 13:41:14 +0000 (09:41 -0400)]
rust/default: Enable Default usage
Jeff Lucovsky [Sat, 22 May 2021 13:40:34 +0000 (09:40 -0400)]
nfs: Rework constructs to use Self/Default
Jeff Lucovsky [Sat, 22 May 2021 13:12:43 +0000 (09:12 -0400)]
dhcp: Rework constructs to use Self/Default
Jeff Lucovsky [Sat, 22 May 2021 13:03:58 +0000 (09:03 -0400)]
dcerpc: Rework constructs to use Self/Default
Jeff Lucovsky [Sat, 22 May 2021 12:33:44 +0000 (08:33 -0400)]
dns: Rework constructs to use Self/Default
Jeff Lucovsky [Fri, 21 May 2021 20:30:53 +0000 (16:30 -0400)]
smb: Rework constructs to use Self/Default
This commit modifies the constructors to use Self and/or
Default::default() when feasible
Jeff Lucovsky [Fri, 21 May 2021 20:31:04 +0000 (16:31 -0400)]
rust/default: Enable Default usage in SMB
Philippe Antoine [Mon, 17 May 2021 14:27:49 +0000 (16:27 +0200)]
doc: update sphinx api to use add_css_file
instead of deprecated add_stylesheet
Shivani Bhardwaj [Wed, 19 May 2021 05:59:04 +0000 (11:29 +0530)]
dcerpc/udp: Add rust registration function
Get rid of the C glue code and move registration completely to Rust.
Shivani Bhardwaj [Wed, 19 May 2021 05:46:03 +0000 (11:16 +0530)]
dcerpc/udp: Change fn sign as per rust registration requirement
Registering parsers in Rust requires signatures to be a certain way and
compatible with C. Change signatures of all the functions.
Shivani Bhardwaj [Tue, 18 May 2021 11:48:00 +0000 (17:18 +0530)]
dcerpc: Add rust registration function
Get rid of the C glue code and move registration completely to Rust.
Shivani Bhardwaj [Tue, 18 May 2021 11:51:44 +0000 (17:21 +0530)]
dcerpc: Change fn sign as per rust registration requirement
Registering parsers in Rust requires signatures to be a certain way and
compatible with C. Change signatures of all the functions.
Shivani Bhardwaj [Mon, 17 May 2021 10:49:41 +0000 (16:19 +0530)]
rust/core: Make AppProto type u16
Shivani Bhardwaj [Wed, 5 May 2021 10:27:51 +0000 (15:57 +0530)]
applayer/rust: add extern AppLayerProtoDetectPMRegisterPatternCSwPP
Victor Julien [Thu, 20 May 2021 13:14:13 +0000 (15:14 +0200)]
github: work around rustc mingw issue
https://github.com/msys2/MINGW-packages/issues/8732#issuecomment-
845079799
Jason Ish [Wed, 19 May 2021 15:44:52 +0000 (09:44 -0600)]
suricata-plugin.h: don't include autoconf.h
It is not required here and just creates double inclusion in some
scenarios.
Victor Julien [Tue, 18 May 2021 13:07:02 +0000 (15:07 +0200)]
http2: remove dead code
Philippe Antoine [Tue, 18 May 2021 07:52:53 +0000 (09:52 +0200)]
http2: remove assertion which can be wrong
Brotli decoder stops consuming input it it reaches the
end of its input
Simon Dugas [Tue, 11 May 2021 14:41:32 +0000 (10:41 -0400)]
modbus: fix quantity and count calculation
The [Modbus Spec S6.11](https://modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf)
clearly states that the `count = quantity / 8` and not the other way
around. This is fixed in sawp-0.5.0.
Philippe Antoine [Mon, 26 Apr 2021 13:50:44 +0000 (15:50 +0200)]
http2: http.cookie keyword now works for HTTP2
Philippe Antoine [Mon, 26 Apr 2021 13:37:57 +0000 (15:37 +0200)]
http2: http.host.raw keyword now works for HTTP2
Philippe Antoine [Mon, 26 Apr 2021 13:17:09 +0000 (15:17 +0200)]
http2: http.method keyword now works for HTTP2
Philippe Antoine [Mon, 26 Apr 2021 13:01:53 +0000 (15:01 +0200)]
http2: makes all HTTP1 header keywords work
Philippe Antoine [Mon, 26 Apr 2021 12:40:33 +0000 (14:40 +0200)]
http2: there is no status msg in HTTP2
so we revert its detection, mistaken with the status code
Philippe Antoine [Mon, 26 Apr 2021 12:39:24 +0000 (14:39 +0200)]
http2: http.stat_code keyword now works for HTTP2
Jeff Lucovsky [Sun, 9 May 2021 13:21:31 +0000 (09:21 -0400)]
doc: Protocol name/case change for upgrade doc
This commit adds a one-liner to the upgrade document for 7.0 stating
that protocol names/values are now builtin to Suricata and that names
and their casing may change.
Jeff Lucovsky [Thu, 6 May 2021 13:49:55 +0000 (09:49 -0400)]
proto: Remove dependency on /etc/protocols
This commit eliminates the dependency on /etc/protocols and equivalent
on other platforms by using a static table of IANA assigned protocol
values (names, description).
Jason Ish [Tue, 4 May 2021 21:47:53 +0000 (15:47 -0600)]
github-ci: enable hiredis on fedora 33 build
Jason Ish [Mon, 3 May 2021 18:17:45 +0000 (12:17 -0600)]
yaml: treat some unquoted values as null (per spec)
Per the YAML spec, the following values when present unquoted
should be equivalent to null:
- ~
- NULL
- Null
- null
Jeff Lucovsky [Fri, 26 Mar 2021 14:06:44 +0000 (10:06 -0400)]
output/redis: Redis threaded output changes
Jeff Lucovsky [Fri, 26 Mar 2021 13:00:39 +0000 (09:00 -0400)]
config/plugin: Add template for plugins
Jeff Lucovsky [Fri, 26 Mar 2021 12:43:11 +0000 (08:43 -0400)]
output/plugin: Support threaded output plugins
Jeff Lucovsky [Fri, 26 Mar 2021 12:16:57 +0000 (08:16 -0400)]
output/plugin: API changes for threaded support
This commit extends the interface to better support file output plugins.