title: WAF bypass of the ModSecurity v3 release line
description: ModSecurity / libModSecurity 3.0.0 to 3.0.11 is affected by a WAF bypass for path-based payloads submitted via specially crafted request URLs. ModSecurity v3 decodes percent-encoded characters present in request URLs before it separates the URL path component from the optional query string component. This results in an impedance mismatch versus RFC compliant back-end applications. The vulnerability hides an attack payload in the path component of the URL from WAF rules inspecting it. A back-end may be vulnerable if it uses the path component of request URLs to construct queries. Integrators and users are advised to upgrade to 3.0.12. The ModSecurity v2 release line is not affected by this vulnerability.
problem types: CWE-20: Improper Input Validation
affected:
{
collectionURL: https://modsecurity.digitalwave.hu
defaultStatus: unaffected
product: ModSecurity
repo: https://github.com/owasp-modsecurity/ModSecurity
vendor: OWASP ModSecurity
versions:
lessThanOrEqual: 3.0.11, status: affected, version: 3.0.0, versionType: patch
}
metrics:
cvssV3_1: [
attackComplexity: LOW
attackVector: NETWORK
availabilityImpact: NONE
baseScore: 8.6
baseSeverity: HIGH
confidentialityImpact: NONE
integrityImpact: HIGH
privilegesRequired: NONE
scope: CHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
version: 3.1
]
format: CVSS
scenarios: GENERAL
solutions: Upgrade to ModSecurity 3.0.12.
workarounds: ModSecurity v3’s REQUEST_URI_RAW variable contains the full URI and is unaffected by the URL decoding step. It is therefore possible to use the REQUEST_URI_RAW variable to derive all other required variables correctly, including performing any required URL decoding.