Skip to content

Exempt pass,nolog control rules from detection-rule metadata - #4

Merged
fzipi merged 1 commit into
mainfrom
fix/metadata-control-rules
Oct 2, 2026
Merged

fzipi merged 1 commit into
mainfrom
fix/metadata-control-rules

Conversation

@fzipi

@fzipi fzipi commented Oct 2, 2026

Copy link
Copy Markdown
Member

CodeRabbit flagged new 901 initialization rules for missing logdata, severity, paranoia-level, attack-type and capec metadata, quoting our own instruction that "every rule needs" them.

That's wrong for control rules: 901, 905, 949, 959, 980 and 999 contain zero paranoia-level/ tags, and the TX:DETECTION_PARANOIA_LEVEL "@lt N" skipAfter guards (e.g. 942011) carry only id, phase, pass,nolog, tag:'OWASP_CRS' and ver.

  • rules/*.conf path instruction: full metadata scoped to detection rules (911-944, 950-956); control rules explicitly exempt.
  • Rule metadata pre-merge check: same exemption for the paranoia-level item.
  • ID ranges: 900xxx is crs-setup.conf, 901xxx is initialization (was mislabeled IP reputation).

Validated with yamllint -d relaxed and check-jsonschema against schema.v2.json.

🤖 Generated with Claude Code

The rules/*.conf path instruction and the rule-metadata check told
CodeRabbit that every rule needs logdata, severity, paranoia-level,
attack-type and capec metadata. Initialization (901), 905, 949, 959,
980, 999 and the PL skipAfter guards carry none of these by design,
which produced false findings on 901 initialization rules.

Also fix the ID range list: 900xxx is crs-setup.conf, 901xxx is
initialization (not IP reputation).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@fzipi
fzipi merged commit 8eddcf9 into main Oct 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant