975 Commits

Author SHA1 Message Date
Mihai Pitu
1b5de94f3d BeanShell support 2016-01-29 10:39:57 -03:00
Mihai Pitu
28e6ad8963 BeanShell support 2016-01-29 10:39:57 -03:00
Mihai Pitu
90856f42b6 BeanShell support 2016-01-29 10:39:57 -03:00
Mihai Pitu
29f4bd15ea BeanShell support and documentation 2016-01-29 10:39:57 -03:00
Mihai Pitu
e87b970dc5 Beanshell support 2016-01-29 10:39:57 -03:00
Mihai Pitu
0619f6726e clean 2016-01-29 10:39:57 -03:00
Mihai Pitu
a0781edba2 log messages fix 2016-01-29 10:39:57 -03:00
Mihai Pitu
c8e31c42f5 improved search directory for native libs 2016-01-29 10:39:57 -03:00
Mihai Pitu
c0eee93dac clean 2016-01-29 10:39:57 -03:00
Mihai Pitu
c822374ebc clean 2016-01-29 10:39:57 -03:00
Mihai Pitu
3b92a030c7 merge upstream & update configs 2016-01-29 10:39:57 -03:00
Felipe Zimmerle
0db247f0e9 Replicates CREATEMODE patch to the secondary auditlog file
At patch 45805be, @littlecho changed the behaviour to set the audit log
index/serial file permission. Before, it was using the default permission now
it is respecting the permission configured via SecAuditLogFileMode. This patch
replicates @littlecho's work to the secundary auditlog file.
2016-01-26 09:20:25 -03:00
littlecho
b175c5cf60 Update apache2_config.c
Change third parameter(which is the apr file permission flag) from CREATEMODE to dcfg->auditlog_fileperms. Due to the user can specify the desired file permission setting for the audit log files with setting the value of SecAuditLogFileMode, we should follow the file permission setting from the config file. Therefore, as the dcfg->auditlog_fileperms will be modified in cmd_audit_log_dirmode function, we can use the value while calling apr_file_open to meet the file permission that specified in modsecurity.conf.
2016-01-26 09:08:13 -03:00
Chaim Sanders
d434a6c043 Fixing missing return value check for hashing response injection failure 2016-01-25 14:54:56 -03:00
Justin Gerace
3f9e2ccc7c Stop buffering when the request is larger than SecRequestBodyLimit and in ProcessPartial mode 2016-01-25 10:37:40 -03:00
Felipe Zimmerle
05bcafd4fc Extends Lua implementation to support Lua 5.3 2016-01-08 18:39:29 -03:00
Athmane Madjoudj
74558b42e4 Fix build issue with Lua >= 5.3 2016-01-07 15:21:20 -03:00
Felipe Zimmerle
c711808ef7 Cosmetic changes on #1031 to avoid compilation warning 2016-01-06 08:24:48 -03:00
Mario D. Santana
e3b3721ee3 Allow mod_proxy's "nocanon" behavior to be specified in proxy actions. 2016-01-06 08:23:52 -03:00
Mario D. Santana
258e5545a2 Perform the intercept_action as well as the disruptive actions. 2016-01-06 08:23:52 -03:00
Wesley M
3a7fdf8fc0 Refactoring conditional directives for if wrappers, alternative if statements and incomplete if conditions. 2016-01-05 08:18:44 -03:00
vfolin
76dfc1a90b Fix apache logging limitation by using correct apache call. Apache 2.4 brought the option to change the ErrorLogFormat. However, many fields remain empty, as ModSecurity uses the wrong apache logging function. This fixes this behaviour with the use of ap_log_rerror. 2015-12-10 12:29:37 -03:00
Andrew Elble
3044ad012b Fix the variable resolution duration (Issue #662)
apr_time_usec is apparently defined as follows:

Which leads DURATION to not behave as expected when duration exceeds one second.
2015-10-27 14:40:01 -03:00
Felipe Zimmerle
198032208a Improves #927 by checking earlier if the string is empty or not 2015-10-26 13:49:05 -03:00
Eugene Alekseev
7ba07bd547 Fix buffer overflow on empty strings in key.
Sometimes apache segfalult on memory copying when key.dptr is some
kind of empty string and key.dsize seems to be 0.
2015-10-26 13:41:55 -03:00
Michael Bunk
f0112604a6 Remove misguided call to srand()
A random number generator needs to be initialized once per process after a fork, but not after each request, more so with an argument that changes only once per second.

This fixes SpiderLabs#778

This is a copy of my commit deec149ca363dd14213afd1f9d7f71a71959ef31.
2015-10-16 11:14:54 -03:00
Jeff Trawick
1ed95ad932 Fix invalid storage reference by apr_psprintf() when creating a string from salt[]. salt[] is not '\0'-terminated, so apr_psprintf() needs to be told the extent of the bytes to read.
It is easy to test old/new code standalone with valgrind;
jst insert the getkey() function into this template:

-----------getkey() goes here-----------------

int main(void)
{
    apr_pool_t *p;

    apr_initialize();
    apr_pool_create(&p, NULL);

    printf("%s\n", getkey(p));
    return 0;
}
2015-03-26 08:55:54 -07:00
Felipe Zimmerle
a9a39255b9 Version 2.9.0
Increasing version to 2.9.0.
2015-02-12 10:58:11 -08:00
Felipe Zimmerle
b304ab1aa2 Improves SecRemoteRules messages on IIS
IIS was not displaying correctly the error messages and the amount of
loaded rules while the operator SecRemoteRules was used.
2015-02-12 09:37:32 -08:00
Felipe Zimmerle
f7c7a30db9 Uses our own version of ap_find_command
Keep compatibility among different versions of Apache is not a simple
task, in this case it can be avoided by the creation of our own version
of ap_find_command, that is now used by msc_remote_rules.
2015-02-12 09:34:42 -08:00
Felipe Zimmerle
462308be74 Improves the accuracy of version identification on status calls
Trying to differentiate among IIS, Apache, NGINX, and Standalone builds.
2015-02-11 18:37:01 -08:00
Felipe Zimmerle
a235b536a4 Fix apr_crypto.h include in modsecurity.h and msc_remote_rules.c
apr_crypto is not always available, configure scripts are looking for
it and setting WITH_APU_CRYPTO in case it is found. There were two
places where apr_crypto.h was included without validating if
WITH_APU_CRYPTO was set. This patch removes the inclusion from the
first place (it seems not to be mandatory) and add the check for
WITH_APU_CRYPTO in the second one. This fix issue #834.
2015-02-11 08:15:30 -08:00
Chaim Sanders
2e09b8e542 Fixed comment incorrect comment 2014-12-29 18:03:19 -05:00
Felipe Zimmerle
de74b131c6 Version 2.9.0-RC2
Increasing version to 2.9.0-RC2.
2014-12-15 12:55:11 -08:00
Felipe Zimmerle
b1e4954a86 Closes a file handle that was left opened on fuzzy hash
Fuzzy hash implementation was lefting a file handle behind whenever the results
matched.
2014-12-12 04:34:21 -08:00
Felipe Zimmerle
f6d6cea015 IIS: Creates IIS_VERSION definition
This definition is currently used in two different circumstances: Report with
accuracy that the server is an IIS  (status call), and also show the amount of
loaded remote rules on the windows logs. Different from Apache which loads the
rules twice, IIS just do it once.
2014-12-11 14:47:59 -08:00
Felipe Zimmerle
6c0cdab35a IIS: Changes Curl version and removes OpenSSL dependency
As the this new Curl version supports well the Windows certificate storage,
removing the dependency on the OpenSSL. Also changing the build scripts to work
accordingly. As the cmake build of Curl is said to broken abandoning it in
favor of the nmake files. Thanks to Gregg Smith and Steffen.
2014-12-11 14:47:59 -08:00
Felipe Zimmerle
069122194e Reducing the amount of compilation warnings 2014-12-11 12:42:58 -08:00
Felipe Zimmerle
fa77c93589 Fix typo on fuzzy hash match message
Replaced "Socore" with Score.
2014-12-11 12:42:58 -08:00
Felipe Zimmerle
dc81e4f852 Informs problems and successfully loaded external resources during reload
Resources load mechanism as the SecRemoteRuels were not showing information
about the loaded rules while Apache was reloaded. This patch add such
information to reload in the same way that it was showing on restart.
2014-12-11 12:42:58 -08:00
Felipe Zimmerle
fe22446bdd Adds missing 'ModSecurity:' prefix to log messages
As reported by Walter Hop, the status call functionality was printing a message
in the console without the expected 'ModSecurity:' prefix. SecServerSignature
was also printing messages without the expected prefix. Both are fixed by this
commit.
2014-12-11 12:42:56 -08:00
Felipe Zimmerle
ce4cf24f6e Refactoring external resources download warn messages
Holding the message to be displayed when Apache is ready to write on the
error_log instead of the default output. Regression tests were added.
2014-12-11 12:42:49 -08:00
Felipe Zimmerle
d4a055e78e Checks HTTP code after performing a resource download
As reported by Walter Hop on our dev- mailing list, remote resource download
was not validating the HTTP code, parsing errors pages as resources. This
commit fix  this issue, from now one HTTP error codes will be verified and
treated as errors. Operators are now dealing well with empty values that may
be produced in consequence of a download error.
2014-12-11 12:39:31 -08:00
Felipe Zimmerle
87a401af05 Fix remote resources download while hosting SSL site on Apache
As reported by Christian Folin and Walter Hop on our dev mailing list, Apache
mod_ssl was failing if a remote resource was utilized. That was happening
because Curl clean up was also cleaning up the OpenSSL data used by mod_ssl.
This patch moves Curl initialization to happens while ModSecurity is
initialized.
2014-12-11 12:39:27 -08:00
Felipe Zimmerle
23823bb2c3 Makes Curl no longer a mandatory depedency for ModSecurity core
As reported by Rainer Jung, Curl may not be mandatory to build
	ModSecurity core. This patch make it optional by:
	- Concentrate all downloads using curl on msc_remote_rules.c
	- Split Curl build definitions checks into: WITH_CURL, WITH_REMOTE_RULES
	and WITH_CRYPTO.
	  - WITH_CURL: Contains Culr headers and binaries during the build time.
	  - WITH_REMOTE_RULES: Currently enabled if Curl is present.
	  - WITH_CRYPTO: Set if apr tool was compiled with crypto support.
	- Renames msc_remote_grab_content to msc_remote_download_content
2014-12-03 08:28:59 -08:00
Felipe Zimmerle
94fd570e31 Fix parser segfault on parser while parsing downloaded content
The error message was using a null pointer which was leading ModSecurity
to segfault
2014-11-21 03:52:03 -08:00
Felipe Zimmerle
23f6f6e6e6 Version 2.9.0-RC1
Increasing version to 2.9.0-RC1.
2014-11-17 19:34:55 -08:00
Felipe Zimmerle
b019f6056f fix typo
- Adds a missing "s" while informing the amount of remote loaded rules.
- Renames text file that was wrongly named as .py
2014-11-17 19:32:43 -08:00
Felipe Zimmerle
9fe72b72de Improves the CA validation
On IIS CA validation was not working as libcurl on windows does not look for a
certificate store, unless it is specified. The resource downloads are now
respecting the SecRemoteRulesFailAction.
2014-11-17 19:32:32 -08:00
Felipe Zimmerle
b5398abaf2 Forces downloads using https-only for resources or rules
This commit makes ModSecurity to refuse to download or install rules
(SecRemoteRules) from sites that are not running HTTPS with a valid and
trusted certificate.
2014-11-14 11:53:40 -08:00