What's Changed
Features
- feat: allow selectors on
*_NAMEScollections by @blotus in #1143 - feat: auditlog syslog writer by @Serjick in #1383
- feat: add json schema improvements by @jcchavezs in #1384
- feat: implement ctl:auditLogParts + and - for modifying audit logs by @fzipi in #1467
- feat(strmatch): add new operator by @fzipi in #1473
- feat: add optional rule observer callback to WAF config by @heaven in #1478
- feat: add WAFWithRules interface with RulesCount() by @ppomes in #1492
- feat: add SecRequestBodyJsonDepthLimit directive by @fzipi in #1110
- feat: ignore unexpected EOF in MIME multipart request body processor by @hnakamur in #1453
- feat: optimize ruleRemoveById range handling store ranges instead of expanding to int slices by @Copilot in #1538
Fixes
- fix(go1.24): bump linter by @M4tteoP in #1330
- fix(deps): update all non-major dependencies in .github/workflows/tinygo.yml by @renovate[bot] in #1326
- fix(deps): update module github.com/mccutchen/go-httpbin/v2 to v2.18.0 in go.mod by @renovate[bot] in #1331
- audit:
Hshould populate also with error logs. by @M4tteoP in #1310 - fix(deps): update module github.com/rs/zerolog to v1.34.0 in testing/coreruleset/go.mod by @renovate[bot] in #1332
- fix(deps): update module golang.org/x/net to v0.38.0 in go.mod by @renovate[bot] in #1337
- fixes misspelled build tag coraza.rule.multiphase_evaluation by @daum3ns in #1338
- fix(deps): update module github.com/corazawaf/coraza-coreruleset/v4 to v4.10.0 in testing/coreruleset/go.mod by @renovate[bot] in #1341
- fix(deps): update module golang.org/x/sync to v0.13.0 in go.mod by @renovate[bot] in #1344
- fix(deps): update module golang.org/x/net to v0.39.0 in go.mod by @renovate[bot] in #1346
- fix(deps): update go modules in go.mod by @renovate[bot] in #1354
- fix(deps): update all non-major dependencies in .github/workflows/tinygo.yml by @renovate[bot] in #1342
- fix:
coraza.conf-recommended, stricter parsing actions by @M4tteoP in #1352 - fix(deps): update go modules in go.mod by @renovate[bot] in #1372
- fix: regenerate variables map to allow selection on all supported collections by @blotus in #1371
- fix: nil deference on err.Error() by @ad3n in #1367
- fix(deps): update all non-major dependencies in go.mod by @renovate[bot] in #1373
- fix(deps): update module github.com/mccutchen/go-httpbin/v2 to v2.18.3 in go.mod by @renovate[bot] in #1374
- fix(deps): update github.com/magefile/mage digest to 78acbaf in go.mod by @renovate[bot] in #1375
- fix: resolve cutQuotedString issue with double backslashes (\) by @trgalho in #1364
- fix(deps): update module github.com/corazawaf/coraza-coreruleset/v4 to v4.15.0 in testing/coreruleset/go.mod by @renovate[bot] in #1376
- fix: wrong status returned when SecResponseBodyLimit is reached and Action is Reject by @daum3ns in #1379
- fix(deps): update module golang.org/x/sync to v0.16.0 in go.mod by @renovate[bot] in #1385
- fix(deps): update module golang.org/x/net to v0.42.0 in go.mod by @renovate[bot] in #1386
- fix(deps): update module github.com/bmatcuk/doublestar/v4 to v4.9.0 in testing/coreruleset/go.mod by @renovate[bot] in #1388
- fix(deps): update all non-major dependencies in testing/coreruleset/go.mod by @renovate[bot] in #1392
- Fixed mandatory check of rule ID. by @brijeshjvalera in #1325
- fix: cutQuotedString - not working for
\""by @trgalho in #1394 - fix(deps): update module golang.org/x/net to v0.43.0 in go.mod by @renovate[bot] in #1397
- fix: lowercase regex patterns for case-insensitive variable collections by @fzipi in #1505
- fix: ctl:ruleRemoveTargetById to support whole-collection exclusion by @Copilot in #1495
- fix: update constants for recursion limit by @jcchavezs in #1512
- Fix HTTP middleware to process all Transfer-Encoding values by @Copilot in #1518
- fix: set changed flag in removeComments and escapeSeqDecode by @jptosso in #1532
- fix(testing): Correct use of ProcessURI in Benchmarks by @MarcWort in #1546
- fix: typo in responseWriter name in TestWriteResponseBody by @hnakamur in #1451
- fix: streamed responses by @daum3ns in #1449
- fix: adds timeout to tinygo by @jcchavezs in #1463
- fix: pass through respose body after process partial by @M4tteoP in #1461
- fix: directive name is SecAuditLogsStorageDir by @fzipi in #1466
- fix: SecRuleUpdateActionById should replace disruptive actions by @fzipi in #1471
- fix(1482): improve quotes parsing during seclang bootstrap by @jptosso in #1486
- fix(deps): update module golang.org/x/net to v0.45.0 [security] by @renovate[bot] in #1487
- fix(deps): update module golang.org/x/sync to v0.20.0 in go.mod by @renovate[bot] in #1543
Tests
- updates CRS tests from v4.10.0 to v4.14.0 by @M4tteoP in #1355
- updates tests to CRS 4.20 by @M4tteoP in #1444
- fix tinygo tests for go 25 by @jptosso in #1485
- fix(testing): Correct use of ProcessURI in Benchmarks by @MarcWort in #1546
- Pre add testcase for streamed responses by @jcchavezs in #1459
Chores and Other
- chore(deps): update github/codeql-action digest to 1b549b9 in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1335
- chore: improves
coraza.conf-recommendedcomments by @M4tteoP in #1334 - chore: update tinygo 0.34.0 by @M4tteoP in #1353
- Add @pmf short alias for @pmFromFile by @dmefs in #1356
- Add @ipMatchF short alias for @ipMatchFromFile by @dmefs in #1357
- chore(deps): update codecov/codecov-action digest to 18283e0 in .github/workflows/regression.yml by @renovate[bot] in #1359
- chore(deps): update github/codeql-action digest to ff0a06e in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1361
- docs: add RuiQi to integrations list by @HUAHUAI23 in #1368
- chore(deps): update all non-major dependencies in .github/workflows/tinygo.yml by @renovate[bot] in #1369
- chore: add tx to context by @trgalho in #1345
- Revert "chore: add tx to context" by @jcchavezs in #1378
- chore(deps): update github/codeql-action digest to 39edc49 in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1380
- chore(deps): update module github.com/go-viper/mapstructure/v2 to v2.3.0 [security] by @renovate[bot] in #1381
- chore(deps): update github/codeql-action digest to 181d5ee in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1382
- chore(deps): update github/codeql-action digest to d6bbdef in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1390
- chore(deps): update github/codeql-action digest to 4e828ff in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1391
- chore(deps): update github/codeql-action digest to 51f7732 in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1393
- chore(deps): update actions/cache digest to 0400d5f in .github/workflows/tinygo.yml by @renovate[bot] in #1396
- chore(deps): update github/codeql-action digest to 76621b6 in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1398
- chore(deps): update actions/checkout action to v5 in .github/workflows/tinygo.yml by @renovate[bot] in #1401
- chore(deps): update github/codeql-action digest to df55935 in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1403
- chore(deps): update dependency go to 1.25.x in .github/workflows/lint.yml by @renovate[bot] in #1405
- chore(deps): update github/codeql-action digest to 96f518a in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1407
- chore(deps): update codecov/codecov-action digest to fdcc847 in .github/workflows/regression.yml by @renovate[bot] in #1408
- chore(deps): update github/codeql-action digest to 3c3833e in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1410
- chore(deps): update module github.com/go-viper/mapstructure/v2 to v2.4.0 [security] by @renovate[bot] in #1411
- chore(deps): update all non-major dependencies in .github/workflows/regression.yml by @renovate[bot] in #1419
- chore(deps): update actions/setup-go action to v6 in .github/workflows/tinygo.yml by @renovate[bot] in #1420
- chore(deps): update actions/stale action to v10 in .github/workflows/close-issues.yml by @renovate[bot] in #1422
- chore(deps): update github/codeql-action action to v4 in .github/workflows/codeql-analysis.yml by @renovate[bot] in #1437
- chore(deps): update actions/checkout action to v6 in .github/workflows/tinygo.yml by @renovate[bot] in #1442
- Migrates golangci-lint to v2 by @M4tteoP in #1445
- chore: run golang modernize by @M4tteoP in #1446
- chore: increases the minimum go version by @jcchavezs in #1462
- chore(deps): update module golang.org/x/crypto to v0.45.0 [security] by @renovate[bot] in #1443
- chore: update libinjection-go and deps by @fzipi in #1496
- chore: min go version to 1.25 by @M4tteoP in #1497
- chore: remove panic from seclang compiler by @Copilot in #1514
- ci: reduce regression matrix from 128 to 15 jobs by @jptosso in #1522
- perf: use map for ruleRemoveByID for O(1) lookup by @jptosso in #1524
- perf: prefix-based transformation cache with inline values by @fzipi in #1544
- perf: bulk-allocate MatchData in collection Find methods by @jptosso in #1530
- perf: use FindStringSubmatchIndex to avoid capture allocations by @jptosso in #1547
- refactor: remove root package dependency on experimental by @fzipi in #1494
- docs: update package and strmatch operators by @fzipi in #1477
- docs(actions): update format and add package by @fzipi in #1475
- doc: fix phase in ctl action example by @hnakamur in #1428
- Add doc to directives by @hnakamur in #1434
- Mark unimplemented SecAuditLogParts in docs by @louis-lau in #1455
- docs: adds documentation to e2e package by @jcchavezs in #1460
- chore: adds copilot instructions. by @jcchavezs in #1464
- Replace "1GB" with "1GiB" in request/response body size limit by @hnakamur in #1418
- Pre add testcase for streamed responses by @jcchavezs in #1459
New Contributors
- @daum3ns made their first contribution in #1338
- @dmefs made their first contribution in #1356
- @HUAHUAI23 made their first contribution in #1368
- @ad3n made their first contribution in #1367
- @trgalho made their first contribution in #1364
- @Serjick made their first contribution in #1383
- @brijeshjvalera made their first contribution in #1325
- @hnakamur made their first contribution in #1418
- @louis-lau made their first contribution in #1455
- @heaven made their first contribution in #1478
- @ppomes made their first contribution in #1492
- @MarcWort made their first contribution in #1546
Full Changelog: v3.3.3...v3.4.0