Skip to content

Commit 6cf0b5d

Browse files
authored
chore: release v4.12.0 (#4025)
Signed-off-by: Felipe Zipitria <felipe.zipitria@owasp.org>
1 parent 78d45b0 commit 6cf0b5d

30 files changed

+670
-651
lines changed

CHANGES.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,26 @@
55
or the CRS Google Group at
66
* https://groups.google.com/a/owasp.org/g/modsecurity-core-rule-set-project
77

8-
## Version 4.12.0 - TBD
8+
## Version 4.12.0 - 2025-03-01
9+
10+
## What's Changed
11+
### 🆕 New features and detections 🎉
12+
* feat: prevent V1 cookie format use by @fzipi in https://github.com/coreruleset/coreruleset/pull/4006
13+
* feat: added new restricted files for openstack and docker compose by @azurit in https://github.com/coreruleset/coreruleset/pull/4021
14+
### 🧰 Other Changes
15+
* fix: multipart header tag consistency by @Xhoenix in https://github.com/coreruleset/coreruleset/pull/3992
16+
* fix: prevent invalid commands matches on 5 characters or less (932220 PL-2, 932230 PL-1, 932232 PL-3, 932235 PL-1, 932236 PL-2, 932237 PL-3, 932238 PL-3, 932239 PL-2, 932250 PL-1, 932260 PL-1) by @EsadCetiner in https://github.com/coreruleset/coreruleset/pull/3735
17+
* docs: add warning about default charsets modification by @fzipi in https://github.com/coreruleset/coreruleset/pull/4003
18+
* fix: response splitting rules and tests by @theseion in https://github.com/coreruleset/coreruleset/pull/4009
19+
* fix(933160): use better regex by @fzipi in https://github.com/coreruleset/coreruleset/pull/4010
20+
* fix: move fopen to 933160 to resolve fp with `RootAndLeafOpenCamera.jpg` (933150 PL-1, 933160 PL-1) by @EsadCetiner in https://github.com/coreruleset/coreruleset/pull/4016
21+
* fix(941210): update log message to reflect rule javascript word detection by @fzipi in https://github.com/coreruleset/coreruleset/pull/4023
22+
* fix: remove .env from lfi-os-files.data by @theseion in https://github.com/coreruleset/coreruleset/pull/4024
23+
24+
## New Contributors
25+
* @renovate made their first contribution in https://github.com/coreruleset/coreruleset/pull/4000
26+
27+
**Full Changelog**: https://github.com/coreruleset/coreruleset/compare/v4.11.0...v4.12.0
928

1029
## Version 4.11.0 - 2025-01-27
1130

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ Along those lines, OWASP CRS team may not issue security notifications for unsup
1111

1212
| Version | Supported |
1313
| --------- | ------------------ |
14+
| 4.12.z | :white_check_mark: |
1415
| 4.11.z | :white_check_mark: |
15-
| 4.10.z | :white_check_mark: |
1616
| 4.y.z | :x: |
1717
| 3.3.x | :white_check_mark: |
1818
| 3.2.x | :x: |

crs-setup.conf.example

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# ------------------------------------------------------------------------
2-
# OWASP CRS ver.4.12.0-dev
2+
# OWASP CRS ver.4.12.0
33
# Copyright (c) 2006-2020 Trustwave and contributors. All rights reserved.
44
# Copyright (c) 2021-2025 CRS project. All rights reserved.
55
#
@@ -181,7 +181,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
181181
# t:none,\
182182
# nolog,\
183183
# tag:'OWASP_CRS',\
184-
# ver:'OWASP_CRS/4.12.0-dev',\
184+
# ver:'OWASP_CRS/4.12.0',\
185185
# setvar:tx.blocking_paranoia_level=1"
186186

187187

@@ -209,7 +209,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
209209
# t:none,\
210210
# nolog,\
211211
# tag:'OWASP_CRS',\
212-
# ver:'OWASP_CRS/4.12.0-dev',\
212+
# ver:'OWASP_CRS/4.12.0',\
213213
# setvar:tx.detection_paranoia_level=1"
214214

215215

@@ -235,7 +235,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
235235
# t:none,\
236236
# nolog,\
237237
# tag:'OWASP_CRS',\
238-
# ver:'OWASP_CRS/4.12.0-dev',\
238+
# ver:'OWASP_CRS/4.12.0',\
239239
# setvar:tx.enforce_bodyproc_urlencoded=1"
240240

241241

@@ -270,7 +270,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
270270
# t:none,\
271271
# nolog,\
272272
# tag:'OWASP_CRS',\
273-
# ver:'OWASP_CRS/4.12.0-dev',\
273+
# ver:'OWASP_CRS/4.12.0',\
274274
# setvar:tx.critical_anomaly_score=5,\
275275
# setvar:tx.error_anomaly_score=4,\
276276
# setvar:tx.warning_anomaly_score=3,\
@@ -324,7 +324,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
324324
# t:none,\
325325
# nolog,\
326326
# tag:'OWASP_CRS',\
327-
# ver:'OWASP_CRS/4.12.0-dev',\
327+
# ver:'OWASP_CRS/4.12.0',\
328328
# setvar:tx.inbound_anomaly_score_threshold=5,\
329329
# setvar:tx.outbound_anomaly_score_threshold=4"
330330

@@ -385,7 +385,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
385385
# t:none,\
386386
# nolog,\
387387
# tag:'OWASP_CRS',\
388-
# ver:'OWASP_CRS/4.12.0-dev',\
388+
# ver:'OWASP_CRS/4.12.0',\
389389
# setvar:tx.reporting_level=4"
390390

391391

@@ -417,7 +417,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
417417
# t:none,\
418418
# nolog,\
419419
# tag:'OWASP_CRS',\
420-
# ver:'OWASP_CRS/4.12.0-dev',\
420+
# ver:'OWASP_CRS/4.12.0',\
421421
# setvar:tx.early_blocking=1"
422422

423423

@@ -438,7 +438,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
438438
# t:none,\
439439
# nolog,\
440440
# tag:'OWASP_CRS',\
441-
# ver:'OWASP_CRS/4.12.0-dev',\
441+
# ver:'OWASP_CRS/4.12.0',\
442442
# setvar:tx.enable_default_collections=1"
443443

444444

@@ -476,7 +476,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
476476
# t:none,\
477477
# nolog,\
478478
# tag:'OWASP_CRS',\
479-
# ver:'OWASP_CRS/4.12.0-dev',\
479+
# ver:'OWASP_CRS/4.12.0',\
480480
# setvar:'tx.allowed_methods=GET HEAD POST OPTIONS'"
481481

482482
# Content-Types that a client is allowed to send in a request.
@@ -514,7 +514,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
514514
# nolog,\
515515
# tag:'OWASP_CRS',\
516516
# ctl:ruleRemoveById=920420,\
517-
# ver:'OWASP_CRS/4.12.0-dev',\
517+
# ver:'OWASP_CRS/4.12.0',\
518518
# chain"
519519
# SecRule REQUEST_URI "@rx ^/foo/bar" \
520520
# "t:none"
@@ -528,7 +528,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
528528
# t:none,\
529529
# nolog,\
530530
# tag:'OWASP_CRS',\
531-
# ver:'OWASP_CRS/4.12.0-dev',\
531+
# ver:'OWASP_CRS/4.12.0',\
532532
# setvar:'tx.allowed_request_content_type=|application/x-www-form-urlencoded| |multipart/form-data| |text/xml| |application/xml| |application/soap+xml| |application/json|'"
533533

534534
# Allowed HTTP versions.
@@ -544,7 +544,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
544544
# t:none,\
545545
# nolog,\
546546
# tag:'OWASP_CRS',\
547-
# ver:'OWASP_CRS/4.12.0-dev',\
547+
# ver:'OWASP_CRS/4.12.0',\
548548
# setvar:'tx.allowed_http_versions=HTTP/1.0 HTTP/1.1 HTTP/2 HTTP/2.0 HTTP/3 HTTP/3.0'"
549549

550550
# Forbidden file extensions.
@@ -568,7 +568,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
568568
# t:none,\
569569
# nolog,\
570570
# tag:'OWASP_CRS',\
571-
# ver:'OWASP_CRS/4.12.0-dev',\
571+
# ver:'OWASP_CRS/4.12.0',\
572572
# setvar:'tx.restricted_extensions=.asa/ .asax/ .ascx/ .backup/ .bak/ .bat/ .cdx/ .cer/ .cfg/ .cmd/ .com/ .config/ .conf/ .cs/ .csproj/ .csr/ .dat/ .db/ .dbf/ .dll/ .dos/ .htr/ .htw/ .ida/ .idc/ .idq/ .inc/ .ini/ .key/ .licx/ .lnk/ .log/ .mdb/ .old/ .pass/ .pdb/ .pem/ .pol/ .printer/ .pwd/ .rdb/ .resources/ .resx/ .sql/ .swp/ .sys/ .vb/ .vbs/ .vbproj/ .vsdisco/ .webinfo/ .xsd/ .xsx/'"
573573

574574
# Restricted request headers.
@@ -613,7 +613,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
613613
# t:none,\
614614
# nolog,\
615615
# tag:'OWASP_CRS',\
616-
# ver:'OWASP_CRS/4.12.0-dev',\
616+
# ver:'OWASP_CRS/4.12.0',\
617617
# setvar:'tx.restricted_headers_basic=/content-encoding/ /proxy/ /lock-token/ /content-range/ /if/ /x-http-method-override/ /x-http-method/ /x-method-override/'"
618618
#
619619
# [ Extended ]
@@ -639,7 +639,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
639639
# t:none,\
640640
# nolog,\
641641
# tag:'OWASP_CRS',\
642-
# ver:'OWASP_CRS/4.12.0-dev',\
642+
# ver:'OWASP_CRS/4.12.0',\
643643
# setvar:'tx.restricted_headers_extended=/accept-charset/'"
644644

645645
# Content-Types charsets that a client is allowed to send in a request.
@@ -658,7 +658,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
658658
# t:none,\
659659
# nolog,\
660660
# tag:'OWASP_CRS',\
661-
# ver:'OWASP_CRS/4.12.0-dev',\
661+
# ver:'OWASP_CRS/4.12.0',\
662662
# setvar:'tx.allowed_request_content_type_charset=|utf-8| |iso-8859-1| |iso-8859-15| |windows-1252|'"
663663

664664
#
@@ -684,7 +684,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
684684
# t:none,\
685685
# nolog,\
686686
# tag:'OWASP_CRS',\
687-
# ver:'OWASP_CRS/4.12.0-dev',\
687+
# ver:'OWASP_CRS/4.12.0',\
688688
# setvar:tx.max_num_args=255"
689689

690690
# Block request if the length of any argument name is too high
@@ -698,7 +698,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
698698
# t:none,\
699699
# nolog,\
700700
# tag:'OWASP_CRS',\
701-
# ver:'OWASP_CRS/4.12.0-dev',\
701+
# ver:'OWASP_CRS/4.12.0',\
702702
# setvar:tx.arg_name_length=100"
703703

704704
# Block request if the length of any argument value is too high
@@ -712,7 +712,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
712712
# t:none,\
713713
# nolog,\
714714
# tag:'OWASP_CRS',\
715-
# ver:'OWASP_CRS/4.12.0-dev',\
715+
# ver:'OWASP_CRS/4.12.0',\
716716
# setvar:tx.arg_length=400"
717717

718718
# Block request if the total length of all combined arguments is too high
@@ -726,7 +726,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
726726
# t:none,\
727727
# nolog,\
728728
# tag:'OWASP_CRS',\
729-
# ver:'OWASP_CRS/4.12.0-dev',\
729+
# ver:'OWASP_CRS/4.12.0',\
730730
# setvar:tx.total_arg_length=64000"
731731

732732
# Block request if the file size of any individual uploaded file is too high
@@ -740,7 +740,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
740740
# t:none,\
741741
# nolog,\
742742
# tag:'OWASP_CRS',\
743-
# ver:'OWASP_CRS/4.12.0-dev',\
743+
# ver:'OWASP_CRS/4.12.0',\
744744
# setvar:tx.max_file_size=1048576"
745745

746746
# Block request if the total size of all combined uploaded files is too high
@@ -754,7 +754,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
754754
# t:none,\
755755
# nolog,\
756756
# tag:'OWASP_CRS',\
757-
# ver:'OWASP_CRS/4.12.0-dev',\
757+
# ver:'OWASP_CRS/4.12.0',\
758758
# setvar:tx.combined_file_sizes=1048576"
759759

760760

@@ -794,7 +794,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
794794
# pass,\
795795
# nolog,\
796796
# tag:'OWASP_CRS',\
797-
# ver:'OWASP_CRS/4.12.0-dev',\
797+
# ver:'OWASP_CRS/4.12.0',\
798798
# setvar:tx.sampling_percentage=100"
799799

800800

@@ -815,7 +815,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
815815
# t:none,\
816816
# nolog,\
817817
# tag:'OWASP_CRS',\
818-
# ver:'OWASP_CRS/4.12.0-dev',\
818+
# ver:'OWASP_CRS/4.12.0',\
819819
# setvar:tx.crs_validate_utf8_encoding=1"
820820

821821
# -- [[ Skip Checking Responses ]] ------------------------------------------------
@@ -837,7 +837,7 @@ SecDefaultAction "phase:2,log,auditlog,pass"
837837
# t:none,\
838838
# nolog,\
839839
# tag:'OWASP_CRS',\
840-
# ver:'OWASP_CRS/4.12.0-dev',\
840+
# ver:'OWASP_CRS/4.12.0',\
841841
# setvar:tx.crs_skip_response_analysis=1"
842842

843843
#
@@ -858,5 +858,5 @@ SecAction \
858858
t:none,\
859859
nolog,\
860860
tag:'OWASP_CRS',\
861-
ver:'OWASP_CRS/4.12.0-dev',\
861+
ver:'OWASP_CRS/4.12.0',\
862862
setvar:tx.crs_setup_version=4120"

rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# ------------------------------------------------------------------------
2-
# OWASP CRS ver.4.12.0-dev
2+
# OWASP CRS ver.4.12.0
33
# Copyright (c) 2006-2020 Trustwave and contributors. All rights reserved.
44
# Copyright (c) 2021-2025 CRS project. All rights reserved.
55
#

0 commit comments

Comments
 (0)