blog: CRS migration series part 7 — engine-specific notes#516
Conversation
Covers the CRS 4 engine support matrix (ModSecurity v2/v3, Coraza), unsupported configurations, Lua plugin requirements per engine, Coraza migration considerations, and the new Docker image tagging scheme including LTS tags. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The author is already shown from the front matter. Adds the related-pages shortcode to cross-link migration series posts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deploying website with
|
| Latest commit: |
5fc8f9a
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://7b06838b.website-1u6.pages.dev |
| Branch Preview URL: | https://blog-crs-migration-part-7.website-1u6.pages.dev |
|
Warning Review limit reached
More reviews will be available in 36 minutes and 58 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughA minor clarification to plugin documentation adds Lua requirement notes to the antivirus-plugin entry. A comprehensive new blog post (Part 7) documents CRS 4 engine support, per-engine migration guidance for ModSecurity v2/v3 and Coraza, official Docker image usage and configuration, plugin installation via derived images, and concludes the migration series with LTS support window information. ChangesCRS Migration Documentation Updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
content/blog/2026-05-11-migrating-from-crs-3-to-crs-4-part-7-engines.md (1)
103-103: ⚡ Quick winStandardize regex terminology for consistency.
The sentence mixes
regexp(the Go package name) and "regex" (informal term). Use consistent terminology throughout.💡 Proposed fix: standardize to "regular expression" or "regex"
-**RE2/Hyperscan.** Coraza can be built with RE2 or Go's native `regexp` package. CRS 4's RE2 compatibility (covered in Part 5) means that CRS rules work correctly regardless of which regex backend Coraza uses. +**RE2/Hyperscan.** Coraza can be built with RE2 or Go's native `regexp` package. CRS 4's RE2 compatibility (covered in Part 5) means that CRS rules work correctly regardless of which regular expression backend Coraza uses.Alternatively, use "regex" consistently if informal terminology is preferred.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@content/blog/2026-05-11-migrating-from-crs-3-to-crs-4-part-7-engines.md` at line 103, The sentence inconsistently uses "regexp" (the Go package name) and "regex" (informal terminology) which creates confusion. Standardize the terminology by choosing either "regular expression" or "regex" and applying it consistently throughout the sentence. Replace the informal "regex" references with your chosen standard terminology, while keeping "regexp" only when specifically referring to the Go package name in code context. Ensure any similar inconsistencies in related sentences are also corrected.Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@content/blog/2026-05-11-migrating-from-crs-3-to-crs-4-part-7-engines.md`:
- Line 103: The sentence inconsistently uses "regexp" (the Go package name) and
"regex" (informal terminology) which creates confusion. Standardize the
terminology by choosing either "regular expression" or "regex" and applying it
consistently throughout the sentence. Replace the informal "regex" references
with your chosen standard terminology, while keeping "regexp" only when
specifically referring to the Go package name in code context. Ensure any
similar inconsistencies in related sentences are also corrected.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: e62b3556-6525-46f0-ab8f-e8226667e547
⛔ Files ignored due to path filters (1)
static/images/2026/04/pexels-brett-sayles-4508751.jpgis excluded by!**/*.jpg
📒 Files selected for processing (1)
content/blog/2026-05-11-migrating-from-crs-3-to-crs-4-part-7-engines.md
- Part 3: mark antivirus-plugin as requiring Lua (matches plugin prerequisites) - Part 7: list overview in series intro; use 'regular expression engine'
Co-authored-by: Max Leske <250711+theseion@users.noreply.github.com>
Signed-off-by: Felipe Zipitria <felipe.zipitria@owasp.org>
Signed-off-by: Felipe Zipitria <felipe.zipitria@owasp.org>
Signed-off-by: Felipe Zipitria <felipe.zipitria@owasp.org>
what
Adds Part 7 — the final post — of the CRS 3.3 → 4.25 LTS migration series.
content/blog/2026-05-11-migrating-from-crs-3-to-crs-4-part-7-engines.mdplus its header image.why
Closes out the migration series by covering the engine layer, which the previous six posts (config, plugins, anomaly scoring, rule changes, tuning) did not address. Readers running on different WAF engines need to know what CRS 4 supports and how Docker-based deployments change.
refs
Summary by CodeRabbit
antivirus-pluginrequires Lua.