604 Commits

Author SHA1 Message Date
Alexey Zelkin
afd7a21d11
Correctly handle return values from pcre_study(3)
If both function's return value and errptr are NULLs, it means
that pcre_study() does not make sense, so can be ignored.
2016-07-05 11:48:52 -03:00
Felipe Zimmerle
e231503bc9
Simplifies the collection interface 2016-07-05 09:48:58 -03:00
Alexey Zelkin
f43704dbef
Add explicit 'return true;' for Transaction::extractArguments()
Unbreaks runtime for FreeBSD 10 (clang generated code)
2016-07-04 22:42:36 -03:00
Alexey Zelkin
45850d17da
Fix typo (= vs ==) 2016-07-04 22:42:00 -03:00
Felipe Zimmerle
71acdaf8c5
Accept new line + caridge return in the rules parser 2016-07-01 16:06:34 -03:00
Felipe Zimmerle
578dabea8b
Informs the https client a key if any is given 2016-07-01 15:04:17 -03:00
Felipe Zimmerle
3d1d0514fd
Fix pass action behaviour: now only ingore actions within the same rule
More details on issue #1152
2016-07-01 11:01:51 -03:00
Felipe Zimmerle
f72bd587ec
Adds support to the allow action 2016-06-30 20:44:51 -03:00
Felipe Zimmerle
e77e4c4c14
Adds missing test case to Makefile.am and initializes the skip var 2016-06-30 13:46:15 -03:00
Felipe Zimmerle
b0f69b1262
Adds support to the `skip' action 2016-06-30 10:35:42 -03:00
Alexey Zelkin
f00e625c8e
Unbreak build with custom location of libyajl.so 2016-06-30 09:41:26 -03:00
Felipe Zimmerle
90adb53935
Adds support to JSON request body parser 2016-06-29 21:55:41 -03:00
Felipe Zimmerle
2477470607
Adds support to the resource collection 2016-06-24 15:17:29 -03:00
Felipe Zimmerle
bad3e13612
parser: Fix commented SecRule parser
No longer treat the next line as comment. Instead changes the
parser state to comment and figure out what to do.
2016-06-24 13:51:54 -03:00
Felipe Zimmerle
7d06c32b0d
Adds error messages while failed to init a collection 2016-06-24 13:48:57 -03:00
Felipe Zimmerle
0c0a9b3083
Accepts component signature between brackets 2016-06-23 23:14:01 -03:00
Felipe Zimmerle
74a34261ab
Adds function removeBracketsIfNeeded to utils 2016-06-23 23:11:49 -03:00
Felipe Zimmerle
7317079945
parser: Reporting the right column position in case of error 2016-06-23 16:02:09 -03:00
Felipe Zimmerle
37c18326c6
parser: Avoid to duplicate the invalid character 2016-06-23 16:01:05 -03:00
Felipe Zimmerle
0fdde52532
Fix setvar action to accept equals nothing 2016-06-23 15:48:23 -03:00
Felipe Zimmerle
cf2ffe7e11
Fix the line counter while showing an parser error 2016-06-23 15:40:19 -03:00
Felipe Zimmerle
02909f7cd8
parser: arbitraty text can be used instead of operator
The usage of an arbitrary text instead operator was expecting that the
arbitrary text start by something different from "@" or "!", now it can
start with anything, including "@", and/or "!". Notice however that
there aren't such thing as a bad  operator. Bad operator will be used as
input of @rx. Issue #1136.
2016-06-22 16:59:50 -03:00
Felipe Zimmerle
0d53dda1a1
Adds support to @unconditionalMatch
Issue #1002
2016-06-21 13:46:55 -03:00
Felipe Zimmerle
60be385ebe
Adds support to the SERVER_NAME variable 2016-06-21 10:53:11 -03:00
Felipe Zimmerle
df1f7c5e08
Adds support to the RESPONSE_PROTOCOL variable 2016-06-21 10:52:18 -03:00
Felipe Zimmerle
b8bd0c5960
API CHANGE: response status is now set on processResponseHeaders
That change was needed to move the variable attribution to earliest
as possible. We also have a new field for HTTP_PROTOCOL version used
on the response.
2016-06-21 09:24:46 -03:00
Felipe Zimmerle
a36b2da86a
Adds support to the STATUS variable 2016-06-20 20:34:39 -03:00
Felipe Zimmerle
56d084a7f4
Adds support the variable rule
Issue #1016
2016-06-20 14:03:45 -03:00
Felipe Zimmerle
6052d2628b
Adds support to URLENCODED_ERROR variable 2016-06-20 11:34:43 -03:00
Felipe Zimmerle
c5262d54f2
Fix argument uri decode order
The uri decode happens after the string is splitted, not before.
2016-06-17 15:34:06 -03:00
Felipe Zimmerle
dbaf79fb8e
Adds extractArguments facilitator method
Little refactoring to use this method instead of doing it
manually in different parts of the code.
2016-06-17 15:15:44 -03:00
Felipe Zimmerle
5c088c8be4
Adds addArgument method to transaction class
There was a bit of refactoring to use the addArgument function, instead
of adding the items manually.
2016-06-17 14:34:22 -03:00
Felipe Zimmerle
ebe8424758
Adds support to REQBODY_ERROR_MSG and REQBODY_ERROR
Support to REQBODY_PROCESSOR_ERROR and REQBODY_PROCESSOR_ERROR_MSG
were also added.
2016-06-16 23:14:15 -03:00
Felipe Zimmerle
7bd6e9a2bd
Makes XML request body processor to be selected only by ctl:equestBodyProcessor 2016-06-16 17:20:47 -03:00
Felipe Zimmerle
7cb27eb9fc
Implements the support to fill the REQBODY_PROCESSOR variable 2016-06-16 15:47:40 -03:00
Felipe Zimmerle
734f63bd07
Adds support to REQBODY_* varibales in the libmodsec parser
This commit makes the following variables to be recognizable:
REQBODY_PROCESSOR_ERROR_MSG, REQBODY_PROCESSOR_ERROR,
REQBODY_PROCESSOR, REQBODY_ERROR_MSG|REQBODY_ERROR
2016-06-16 14:07:26 -03:00
Alexey Zelkin
647019a804
Use internal PCRE based implementation of regular expressions instead of std C++ regex library.
C++ regex library proven to be unusable for gcc 4.8 and earlier version, so
reimplement code using PCRE library in order to build workable version of
unit_test executable for CentOS 7, RHEL 7, Ubuntu 14 and SUSE Linux 12.
2016-06-16 13:50:50 -03:00
Felipe Zimmerle
21777aec41
Fix invalid memory read in msc_tree 2016-06-16 13:31:31 -03:00
Felipe Zimmerle
8b9041c2da
Fix memory leak on VerifyCC operator 2016-06-16 12:40:05 -03:00
Felipe Zimmerle
a4c7d534f2
Fix invalid memory write on base64 forgiven decode 2016-06-16 12:26:05 -03:00
Felipe Zimmerle
7be5fde62a
Fix memory leak on the @pm operator
Binary tree was not being cleaned right, now looking (and cleaning)
the sibling nodes.
2016-06-16 10:37:52 -03:00
Felipe Zimmerle
9cec9db794
Fix memory leak in the method toJSON from Transaction class 2016-06-16 10:33:15 -03:00
Felipe Zimmerle
f833a61089
Fix memory leak on html dentity decode transformation 2016-06-16 10:32:44 -03:00
Felipe Zimmerle
e6c542c5b5
Fix invalid read on sql hex decode transformation 2016-06-16 10:31:15 -03:00
Felipe Zimmerle
9919026620
Fixes regarding memory management
Fixes assorted issues identified by valgrind.
2016-06-16 00:03:57 -03:00
Alexey Zelkin
cb91af537c
Enforce bison requirement to 3.0.4.
Previous versions of bison proven to generate broken code which caused to assert() regression
tests of libmodsecurity for clang 3.4 and gcc 4.8.  Upgrading bison to 3.0.4 solved mentioned issues
for FreeBSD 10, CentOS 7, RHEL 7 and Ubuntu 14.
2016-06-15 23:10:27 -03:00
Alexey Zelkin
32f22d1a79
Use explicit variable size for copying char.
For some reason plain call to "ret.append(&b)" copy 32 bit of data.  This change unbreaks
CmdLine unit tests for FreeBSD 10, CentOS 7, RHEL 7 and Debian 8.
2016-06-15 23:10:27 -03:00
Alexey Zelkin
57ad70bb2b
Add missing 'retrun's for functions declared return value. This change fixes SIGILLs on executable built with clang 3.4.
Tested against FreeBSD 10.3.
2016-06-15 23:10:27 -03:00
Felipe Zimmerle
2e3da7ea24 Better support for multipart
ModSecurity v2.x parser was ported into 3.x branch.

All the multipart related variables should be workbale.
2016-06-10 09:40:08 -03:00
Felipe Zimmerle
9e5cf2de8e Adds Upload configuration paramters to the libmodsec parser 2016-06-07 14:23:56 -03:00