Commit Graph
29 Commits
Author SHA1 Message Date
Andre 3f41be8c34 920120 is a negated rule and must say so
ModSecurity defines 920120 with !@rx: its pattern describes a filename made only
of SAFE characters, and the rule fires when the filename does NOT match. A
quote, an apostrophe, a semicolon, an equals sign or a backslash in a filename
is an attempt to break out of the Content-Disposition header, and that is what
the rule exists to catch.

This format had no way to express a negation, so the rule was imported as a
plain pattern and means the exact opposite: it matched every legitimate upload
and missed every dangerous filename. It did no harm only because the engine
carried a built-in rule under the same ID — a different rule entirely, matching
content-type.*boundary.* on every ordinary multipart upload — which took
precedence.

The engine gained a `negate` field (3.0.61); this declares it. Both are needed:
the flag alone with no engine support does nothing, and engine support with no
flag leaves the rule inverted.

build_datetime bumped, because an agent skips a feed whose stamp has not moved
without reading it.
2026-10-30 21:55:48 +00:00
Andre 843171b985 932180: the /proc file list must be anchored to a path
Rule 932180 "Restricted File Upload Attempt" targets filename, scores 10 and
blocks. Its pattern carries CRS's OS-pseudo-file list with no path anchor, so
bare words matched any uploaded filename:

  module modules meminfo mounts misc mdstat mtrr loadavg locks version
  uptime cmdline stat swaps slabinfo partitions pagetypeinfo

So release-version-2.zip, company-misc-notes.pdf and meminfo.txt were refused
as critical RCE attempts. Found because it blocked an image upload to our own
wiki, which sits behind EdgeGuard: the response carried x-edgeguard-id, the
console found the event by that id, and the match was `module-` in the
filename.

These names mean something as a PATH and nothing as a filename, so the branch
now requires a leading slash. The dotfile branch keeps its own (?:\b|^) anchor
and is untouched.

Measured against the previous pattern over a corpus of 51 names: 16 ordinary
filenames released, NOTHING newly blocked, and every true positive still
caught — .htaccess, .env, .aws/credentials, wp-config.php, /proc/version,
/proc/self/environ, ../../proc/modules, uploads/../../proc/kcore.

build_datetime bumped. An agent skips a feed whose stamp has not changed
without reading it, so a corrected pattern under the old stamp would reach
nobody.
2026-10-30 17:50:16 +00:00
Andre 6ff3140e43 Publish CVE channel (2026-10-23T12:33:23Z)
Validated against the engine's TestPublishedFeedDoesNotDuplicateACompiledRule guard.
Entries carrying an id: 0
2026-10-23 13:33:41 +01:00
Andre 04b9ba1cbe Publish CVE channel (2026-10-23T12:18:54Z)
Validated against the engine's TestPublishedFeedDoesNotDuplicateACompiledRule guard.
Entries carrying an id: 2
2026-10-23 13:19:02 +01:00
Andre 11c36906d8 Publish CVE channel (2026-10-23T11:20:19Z)
Validated against the engine's TestPublishedFeedDoesNotDuplicateACompiledRule guard.
Entries carrying an id: 0
2026-10-23 12:20:25 +01:00
AndreandClaude Opus 5 388ee67585 Publish CVE channel self-test (2026-10-23T11:13:20Z)
A deliberately temporary rule, to prove that a rule published through this
channel reaches every edge node and is enforced, and that withdrawing it
stops the enforcement. It matches a parameter name no real request carries.
To be withdrawn as soon as the test is recorded.

Validated against the engine's TestPublishedFeedDoesNotDuplicateACompiledRule
guard.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N5fpE6Gu4W6JoFMXyb7t7r
2026-10-23 12:13:42 +01:00
Andre c44ea2e648 Update OWASP CRS rules to v4.30.0
Automated update via update-feed.sh
CRS version: v4.30.0
Rules extracted: 272
2026-10-23 01:35:31 +01:00
AndreandClaude Opus 5 6ca0cd5d20 Add the CVE channel document
cve.json carries virtual patches: rules written against a named
vulnerability, published as data so that every edge node enforces them
within the hour instead of waiting for an engine release. Engine 3.0.47 and
later fetch it hourly.

It starts empty, which is a valid state and says "no virtual patches at the
moment" — the engine accepts an empty rulesets list as of 3.0.47, and
publishing one is also how the whole channel stands down.

Separate from rulesets.json rather than part of it: each has its own
build_datetime, so each is applied or skipped on its own, and a mistake in
one cannot take out the other. Publishing a patch should not mean
republishing a 357KB mirror of the Core Rule Set.

CVE-CHANNEL.md documents the format, the param_names target, how severity
becomes the anomaly score, and the two mistakes worth avoiding: publishing a
rule for a CVE the engine already patches in code (both fire and the scores
add), and forgetting that there is no backtest for a patch written in the
hours after a disclosure — which is why withdrawal is a first-class
operation here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N5fpE6Gu4W6JoFMXyb7t7r
2026-10-22 14:45:39 +01:00
Andre d6ab346bd3 Update OWASP CRS rules to v4.29.0
Automated update via update-feed.sh
CRS version: v4.29.0
Rules extracted: 271
2026-09-07 18:14:53 +01:00
Andre a0496d7fec Update OWASP CRS rules to v4.29.0
Automated update via update-feed.sh
CRS version: v4.29.0
Rules extracted: 282
2026-09-07 18:08:38 +01:00
Andre efb7ee8f9a Update OWASP CRS rules to v4.29.0
Automated update via update-feed.sh
CRS version: v4.29.0
Rules extracted: 282
2026-09-07 17:55:59 +01:00
Andre c93f04239a Update OWASP CRS rules to v4.29.0
Automated update via update-feed.sh
CRS version: v4.29.0
Rules extracted: 282
2026-09-07 17:34:35 +01:00
Andre 2bb7268107 Update OWASP CRS rules to v4.29.0
Automated update via update-feed.sh
CRS version: v4.29.0
Rules extracted: 282
2026-08-29 19:15:07 +01:00
Andre 93c5d69c53 Update OWASP CRS rules to v4.27.0
Automated update via update-feed.sh
CRS version: v4.27.0
Rules extracted: 279
2026-06-25 00:09:11 +01:00
Andre d3acde3d67 Update OWASP CRS rules to v4.25.0
Automated update via update-feed.sh
CRS version: v4.25.0
Rules extracted: 279
2026-04-23 23:04:50 +01:00
Andre f4bc7b5ed3 Update OWASP CRS rules to v4.25.0
Automated update via update-feed.sh
CRS version: v4.25.0
Rules extracted: 279
2026-04-16 21:44:37 +01:00
Andre 63db619a86 Update OWASP CRS rules to v4.25.0
Automated update via update-feed.sh
CRS version: v4.25.0
Rules extracted: 279
2026-04-02 17:42:20 +01:00
Andre 5488b147a5 Update OWASP CRS rules to v4.24.1
Automated update via update-feed.sh
CRS version: v4.24.1
Rules extracted: 277
2026-03-17 00:18:07 +00:00
Andre 4316bad41e Update OWASP CRS rules to v4.24.1
Automated update via update-feed.sh
CRS version: v4.24.1
Rules extracted: 180
2026-03-10 11:55:26 +00:00
Andre 613e32ae94 Update OWASP CRS rules to v4.24.1
Automated update via update-feed.sh
CRS version: v4.24.1
Rules extracted: 180
2026-03-09 23:05:56 +00:00
Andre 09a7c79e17 Update OWASP CRS rules to v4.24.1
Automated update via update-feed.sh
CRS version: v4.24.1
Rules extracted: 180
2026-03-09 22:45:01 +00:00
Andre 4e6fe3a7fb Update OWASP CRS rules to v4.24.0
Automated update via update-feed.sh
CRS version: v4.24.0
Rules extracted: 180
2026-03-08 16:29:54 +00:00
Andre f1ccfb22ee Update OWASP CRS rules to v4.24.0
Automated update via update-feed.sh
CRS version: v4.24.0
Rules extracted: 180
2026-03-08 16:12:12 +00:00
Andre 4a68d2c9be Update OWASP CRS rules to v4.24.0
Automated update via update-feed.sh
CRS version: v4.24.0
Rules extracted: 180
2026-03-08 15:47:17 +00:00
Andre d5f1a7fd28 Update OWASP CRS rules to v4.24.0
Automated update via update-feed.sh
CRS version: v4.24.0
Rules extracted: 184
2026-03-08 15:35:07 +00:00
Andre f1bf0e1c70 Update OWASP CRS rules to v4.24.0
Automated update via update-feed.sh
CRS version: v4.24.0
Rules extracted: 281
2026-03-08 15:29:02 +00:00
Andre 6b9b1ceba3 Update OWASP CRS rules to v4.24.0
Automated update via update-feed.sh
CRS version: v4.24.0
Rules extracted: 310
2026-03-08 14:18:10 +00:00
Andre 7d5e68a691 Update OWASP CRS rules to v4.24.0
Automated update via update-feed.sh
CRS version: v4.24.0
Rules extracted: 310
2026-03-08 11:58:31 +00:00
Andre d8d8e32cc5 rulesets.json 2026-03-06 16:44:24 +00:00