{"id":"CVE-2026-103932","aliases":["DEBIAN-CVE-2026-103932","EUVD-2026-117551","GHSA-5m93-4h75-3p2w","UBUNTU-CVE-2026-103932"],"status":"published","title":"ModSecurity: PCRE2 `@rxGlobal` match-limit errors are converted to no-match","description":"ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. From 3.0.5 until 3.0.17, the PCRE2 implementation of @rxGlobal in src/utils/regex.cc converts pcre2_match match-limit errors into an ordinary no-match result instead of propagating a non-OK RegexResult. When attacker-controlled input exhausts SecPcreMatchLimit, rules that rely on MSC_PCRE_LIMITS_EXCEEDED or its TX compatibility indicator do not run, so a request that should be rejected can pass through the WAF. The issue affects PCRE2 deployments that use @rxGlobal with a limit-exhaustible expression and a compensating rule; it is not a universal WAF bypass. This issue is fixed in version 3.0.17.","severity":{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00321,"percentile":0.25497,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-253"],"published":"2026-10-06T00:00:00Z","modified":"2026-11-10T10:00:06Z","affected":[{"source":"osv","ecosystem":"Debian:12","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.10-1","3.0.11-1","3.0.12-1","3.0.12-1.1","3.0.12-1.1~exp1","3.0.13-1","3.0.14-1","3.0.15-1","3.0.16-1","3.0.9-1","3.0.9-1+deb12u1","3.0.9-1+deb12u2"]},{"source":"osv","ecosystem":"Debian:13","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.14-1","3.0.14-1+deb13u1","3.0.14-1+deb13u2","3.0.15-1","3.0.16-1"]},{"source":"osv","ecosystem":"Debian:14","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.14-1","3.0.15-1","3.0.16-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.3-1","3.0.4-1","3.0.4-1build1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.4-2","3.0.6-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.10-1","3.0.11-1","3.0.12-1","3.0.12-1.1build1","3.0.12-1.1build2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.14-1build2","3.0.15-1","3.0.16-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"modsecurity","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.14-1build1","3.0.14-1build2"]}],"products":[{"vendor":"owasp-modsecurity","product":"modsecurity"}],"references":[{"url":"https://github.com/owasp-modsecurity/ModSecurity/security/advisories/GHSA-5m93-4h75-3p2w","tags":["x_refsource_CONFIRM","exploit","advisory","report"]},{"url":"https://github.com/owasp-modsecurity/ModSecurity/commit/d92bdc3b2183824ba3c582154b7385ee8349ea7e","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/owasp-modsecurity/ModSecurity/releases/tag/v3.0.17","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/103xxx/CVE-2026-103932.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-103932","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-103932","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-103932","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-103932","tags":["report"]},{"url":"https://modsecurity.org/20260928/security-update-digest-overview-of-recent-advisory-fixes-2026-september/","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-103932","title":"ModSecurity: PCRE2 `@rxGlobal` match-limit errors are converted to no-match","description":"ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. From 3.0.5 until 3.0.17, the PCRE2 implementation of @rxGlobal in src/utils/regex.cc converts pcre2_match match-limit errors into an ordinary no-match result instead of propagating a non-OK RegexResult. When attacker-controlled input exhausts SecPcreMatchLimit, rules that rely on MSC_PCRE_LIMITS_EXCEEDED or its TX compatibility indicator do not run, so a request that should be rejected can pass through the WAF. The issue affects PCRE2 deployments that use @rxGlobal with a limit-exhaustible expression and a compensating rule; it is not a universal WAF bypass. This issue is fixed in version 3.0.17.","status":"published","published":"2026-11-05T15:42:46.251Z","modified":"2026-11-09T17:14:29.857Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-253"],"updated_at":"2026-11-09T19:34:28.960398Z"}],"euvd":[{"id":"EUVD-2026-117551","description":"ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. From 3.0.5 until 3.0.17, the PCRE2 implementation of @rxGlobal in src/utils/regex.cc converts pcre2_match match-limit errors into an ordinary no-match result instead of propagating a non-OK RegexResult. When attacker-controlled input exhausts SecPcreMatchLimit, rules that rely on MSC_PCRE_LIMITS_EXCEEDED or its TX compatibility indicator do not run, so a request that should be rejected can pass through the WAF. The issue affects PCRE2 deployments that use @rxGlobal with a limit-exhaustible expression and a compensating rule; it is not a universal WAF bypass. This issue is fixed in version 3.0.17.","status":"published","published":"2026-11-05T15:42:46Z","modified":"2026-11-09T17:14:29Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-09T18:17:39.592818Z"}],"nvd":[{"id":"CVE-2026-103932","description":"ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. From 3.0.5 until 3.0.17, the PCRE2 implementation of @rxGlobal in src/utils/regex.cc converts pcre2_match match-limit errors into an ordinary no-match result instead of propagating a non-OK RegexResult. When attacker-controlled input exhausts SecPcreMatchLimit, rules that rely on MSC_PCRE_LIMITS_EXCEEDED or its TX compatibility indicator do not run, so a request that should be rejected can pass through the WAF. The issue affects PCRE2 deployments that use @rxGlobal with a limit-exhaustible expression and a compensating rule; it is not a universal WAF bypass. This issue is fixed in version 3.0.17.","status":"published","published":"2026-11-05T16:17:24.9Z","modified":"2026-11-12T22:18:35.61Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-253"],"updated_at":"2026-11-09T20:15:34.274131Z"}],"osv":[{"id":"CVE-2026-103932","title":"ModSecurity: PCRE2 `@rxGlobal` match-limit errors are converted to no-match","description":"ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. From 3.0.5 until 3.0.17, the PCRE2 implementation of @rxGlobal in src/utils/regex.cc converts pcre2_match match-limit errors into an ordinary no-match result instead of propagating a non-OK RegexResult. When attacker-controlled input exhausts SecPcreMatchLimit, rules that rely on MSC_PCRE_LIMITS_EXCEEDED or its TX compatibility indicator do not run, so a request that should be rejected can pass through the WAF. The issue affects PCRE2 deployments that use @rxGlobal with a limit-exhaustible expression and a compensating rule; it is not a universal WAF bypass. This issue is fixed in version 3.0.17.","status":"published","published":"2026-11-05T15:42:46.251Z","modified":"2026-11-11T07:18:20.972932803Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N","level":"medium"}],"cwes":["CWE-253"],"updated_at":"2026-11-07T03:07:59.573031Z"},{"id":"DEBIAN-CVE-2026-103932","description":"ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. From 3.0.5 until 3.0.17, the PCRE2 implementation of @rxGlobal in src/utils/regex.cc converts pcre2_match match-limit errors into an ordinary no-match result instead of propagating a non-OK RegexResult. When attacker-controlled input exhausts SecPcreMatchLimit, rules that rely on MSC_PCRE_LIMITS_EXCEEDED or its TX compatibility indicator do not run, so a request that should be rejected can pass through the WAF. The issue affects PCRE2 deployments that use @rxGlobal with a limit-exhaustible expression and a compensating rule; it is not a universal WAF bypass. This issue is fixed in version 3.0.17.","status":"published","published":"2026-11-05T16:17:24.9Z","modified":"2026-11-10T10:00:06.559268538Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-10T10:26:30.347596Z"},{"id":"UBUNTU-CVE-2026-103932","description":"[GHSA-5m93-4h75-3p2w: @rxGlobal PCRE2 error handling: match-limit fail-open and invalid-pattern crash]","status":"published","published":"2026-10-06T00:00:00Z","modified":"2026-11-07T01:45:12.052158654Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-07T01:57:06.567161Z"}]}}
