Skip to content

Releases: coreruleset/coreruleset

v4.28.0

Choose a tag to compare

@fzipi fzipi released this 02 Jul 08:19
v4.28.0
55b09f5

What's Changed

🔒 Security

🆕 New features and detections 🎉

  • feat: enable crs_validate_utf8_encoding by default by @fzipi in #4647
  • feat: added detection for quote evasion by @Xhoenix in #3813
  • feat(934): detect ORM lookup operator injection by @fzipi in #4659
  • fix(932): detect uninitialized variable spacer in RCE evasion prefix by @fzipi in #4652

🧰 Other Changes

  • refactor: create 941170 .ra file by @fzipi in #4493
  • fix: Update restricted-files.data to include NPM subdirectories without causing FPs by @HackingRepo in #4653
  • fix: remove exponential backtracking in 933160/933161 comment suffix by @fzipi in #4666
  • fix(941140): remove exponential backtracking in CSS url(javascript) detection by @fzipi in #4670
  • fix(933180): remove exponential backtracking in variable-function noise suffix by @fzipi in #4669
  • fix(942390): move to regex-assembly by @fzipi in #4011
  • feat(crs-setup): add default actions for phases 3-5 by @Prateeksaini12 in #4675
  • fix(942522): avoid excessive backtracking by @EsadCetiner in #4676
  • fix: 4RI-250413 by @EsadCetiner in #4672
  • fix: FPs related to RESPONSE_BODY by @azurit in #4684

New Contributors

Full Changelog: v4.27.0...v4.28.0

v4.25.1 (LTS)

Choose a tag to compare

@fzipi fzipi released this 02 Jul 20:10
v4.25.1
3b89d5a

v4.25.1 - 2026-07-01

Breaking Changes

  • Requires libmodsecurity v3.0.16 or later. The XML attribute injection fix (ctl:ruleRemoveTargetByTag=...;XML://@* in rule 901181) depends on owasp-modsecurity/ModSecurity#3589, which fixes the lexer's rejection of @ in ctl:ruleRemoveTarget* actions. On ModSecurity v3 versions older than v3.0.16, this ctl action fails to parse, breaking config load.
  • Fully opting out of XML attribute inspection (tx.crs_xml_attr_inspect) requires ModSecurity v2 >= v2.9.14, once owasp-modsecurity/ModSecurity#3591 is fixed upstream. Until then, ctl:ruleRemoveTargetByTag cannot remove the XML://@* target on ModSecurity v2, so rule 901181 cannot disable attribute inspection on that engine.

Security Fixes

  • Backport fix for 4RI-250413 via hardening of JSON-encoded key/variable-assignment noise handling across LDAP injection, RCE, generic attack, and SQL injection detection rules (Esad Cetiner, cherry-pick of #4672)
  • Backport ReDoS hardening fix removing exponential backtracking in the PHP function-call comment/whitespace suffix (rules 933160, 933161) (Felipe Zipitría, cherry-pick of #4666)
  • Backport ReDoS hardening fix removing exponential backtracking in the PHP variable-function noise suffix (rule 933180) (Felipe Zipitría, cherry-pick of #4669)
  • Backport ReDoS hardening fix removing exponential backtracking in CSS url(javascript:...) detection (rule 941140) (Felipe Zipitría, cherry-pick of #4670)

Bug Fixes

  • Backport false positive fix for payloads with commas but no whitespace in SQL comment detection (rule 942200) (Esad Cetiner, cherry-pick of #4608)
  • Backport false positive fix excluding the pg command from PL1 Unix command detection (Esad Cetiner, cherry-pick of #4613)
  • Backport false positive fix for parameter names containing .history (rule 930120) (Esad Cetiner, cherry-pick of #4614)
  • Backport fix dropping HTTP/0.9 GET support from request line validation for RFC 9110 compliance (rule 920100) (Felipe Zipitría, cherry-pick of #4621)
  • Backport fix so rules 920240 and 920400 use REQBODY_PROCESSOR instead of relying solely on the Content-Type header (Esad Cetiner, cherry-pick of #4639)

Other Changes

  • Add default SecDefaultAction for phases 3-5 in crs-setup.conf.example for consistent logging behavior across engines (Prateek Saini, cherry-pick of #4675)

Full Changelog: v4.25.0...v4.25.1

v3.3.10

Choose a tag to compare

@fzipi fzipi released this 02 Jul 20:09
v3.3.10
ab9e8bb

What's Changed

⚠️ Breaking Change

  • Requires libmodsecurity v3.0.16 or later when running on nginx/libmodsecurity v3. The XML attribute injection fix (ctl:ruleRemoveTargetByTag=...;XML://@* in rule 901181) depends on owasp-modsecurity/ModSecurity#3589, which fixes the lexer's rejection of @ in ctl:ruleRemoveTarget* actions. On libmodsecurity v3 versions older than v3.0.16, this ctl action fails to parse, breaking config load.
  • Fully opting out of XML attribute inspection (tx.crs_xml_attr_inspect) requires ModSecurity v2 >= v2.9.14, once owasp-modsecurity/ModSecurity#3591 is fixed upstream. Until then, ctl:ruleRemoveTargetByTag cannot remove the XML://@* target on ModSecurity v2, so rule 901181 cannot disable attribute inspection on that engine.

⭐ Important changes

Full Changelog: v3.3.9...v3.3.10

v4.27.0

Choose a tag to compare

@fzipi fzipi released this 01 Jun 11:35
v4.27.0
bb64941

What's Changed

🧰 Other Changes

Full Changelog: v4.26.0...v4.27.0

v4.26.0

Choose a tag to compare

@fzipi fzipi released this 04 May 01:40
v4.26.0
955649c

What's Changed

🆕 New features and detections 🎉

🧰 Other Changes

  • fix(lfi-os-files): require path prefix for .profile by @zoutjebot in #4586
  • fix(933150): remove is_int from PHP function names list by @zoutjebot in #4585
  • fix(932370): remove url from Windows LOLBIN command list by @zoutjebot in #4587
  • fix(920539): prefer a bypass on a named rule rather than n+1 bypass by @touchweb-vincent in #4610
  • fix(942290): add word boundary to MongoDB operator detection by @zoutjebot in #4588
  • fix: false positive with parameter name .history by @EsadCetiner in #4614
  • fix(942410): use common exceptions instead of rule by @fzipi in #4617
  • fix(942200): reduce false positives on payloads with comments by @EsadCetiner in #4608
  • fix(unix): exclude pg command from pl-1 by @EsadCetiner in #4613
  • fix(930130): comment out false positive prone entries by @EsadCetiner in #4607
  • fix(920100): drop HTTP/0.9 GET support from request line validation by @fzipi in #4621
  • fix: Update restricted files to include Perl subdirectories by @HackingRepo in #4620

New Contributors

Full Changelog: v4.25.0...v4.26.0

v4.25.0 (LTS)

Choose a tag to compare

@fzipi fzipi released this 28 Mar 20:28
v4.25.0
aabf675

What's Changed

Important ⭐

These below fix CVE-2026-33691:

  • fix(933111): prevent whitespace padding bypass in PHP double-extension upload by @fzipi in #4547
  • fix(933110): prevent whitespace padding bypass in PHP upload detection by @fzipi in #4546
  • fix(944140): prevent whitespace padding bypass in JSP file upload detection by @fzipi in #4548

🆕 New features and detections 🎉

  • feat(930130,930140): expand AI-based paths by @Elnadrion in #4540
  • feat: add aws security agent in scanners-user-agents.data by @S0obi in #4562
  • feat(932390): add shell fork bomb detection rule at PL2 by @fzipi in #4563

🧰 Other Changes

Full Changelog: v4.24.1...v4.25.0

v3.3.9

Choose a tag to compare

@fzipi fzipi released this 28 Mar 21:27
v3.3.9
2924064

What's Changed

⭐ Important changes

Full Changelog: v3.3.8...v3.3.9

v4.24.1

Choose a tag to compare

@fzipi fzipi released this 09 Mar 16:34
v4.24.1
c338570

What's Changed

🆕 New features and detections 🎉

Fixes

🧰 Other Changes

New Contributors

Full Changelog: v4.24.0...v4.24.1

v4.24.0

Choose a tag to compare

@fzipi fzipi released this 28 Feb 20:04
v4.24.0
318e529

What's Changed

🆕 New features and detections 🎉

🧰 Other Changes

  • fix(932130): use lazy regex by @fzipi in #3730
  • chore(943110): move to regex-assembly by @fzipi in #4431
  • fix(930130): reduce false positive by @touchweb-vincent in #4451
  • fix(920650): don't block on method override if it's not actually being overwritten by @EsadCetiner in #4455
  • fix(932340): Add more UNIX FP commands by @ssigwart in #4454
  • refactor(951210): convert maxDB leakage rule to regex-assembly by @fzipi in #4468
  • refactor(951190): convert Ingres leakage rule to regex-assembly by @fzipi in #4466
  • refactor(951140): convert EMC leakage rule to regex-assembly by @fzipi in #4464
  • refactor(951110): convert Access leakage rule to regex-assembly by @fzipi in #4463
  • fix: handle multi-byte UTF-8 chars in SQL special char detection by @fzipi in #4458
  • refactor(951200): convert Interbase leakage rule to regex-assembly by @fzipi in #4467
  • refactor(951180): convert Informix leakage rule to regex-assembly by @fzipi in #4465
  • refactor(951220): convert MSSQL leakage rule to regex-assembly by @fzipi in #4459
  • refactor(951250): convert SQLite leakage rule to regex-assembly by @fzipi in #4460
  • refactor(951260): convert Sybase leakage rule to regex-assembly by @fzipi in #4461
  • refactor(951130): convert DB2 leakage rule to regex-assembly by @fzipi in #4462
  • fix: don't block json variable names called profile on libmodsecurity3/coraza by @EsadCetiner in #4477
  • fix(933100): reduce false positive on Extensible Metadata Platform and xsl-stylesheets by @touchweb-vincent in #4445
  • feat: move 932190 to regex-assembly by @theseion in #4475
  • fix(942200): FP against comma and single quote in French addresses by @theseion in #4476
  • fix: add more exclusions for Google Funding Choices cookie by @azurit in #4484

Full Changelog: v4.23.0...v4.24.0

v4.23.0

Choose a tag to compare

@fzipi fzipi released this 04 Feb 13:31
v4.23.0
b02c9ea

What's Changed

⭐ Important changes

  • feat(920640): add rule to enforce content-type if there is body by @fzipi in #4406

🆕 New features and detections 🎉

🧰 Other Changes

New Contributors

Full Changelog: v4.22.0...v4.23.0