GHSA-jx3r-phvx-2jmj: ModSecurity v3 XML Request Body Processor Uninitialized Pointer Dereference Vulnerability
ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. From 3.0.15 until 3.0.17, XML request body processing with SecParseXmlIntoArgs set to On or OnlyArgs can leave XMLNodes::parsingctxarg uninitialized in the SAX end-element callback. A single crafted unauthenticated HTTP request can make a worker dereference the pointer, resulting in a constant-value write to an attacker-controlled address. The resulting memory corruption can terminate the worker and may disclose memory or redirect execution. Earlier 3.0.x releases and ModSecurity 2.x do not use the affected path. This issue is fixed in version 3.0.17.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ModSecurityto a version that resolves this vulnerability.Fixed in 3.0.17
Event History
Frequently Asked Questions
Which deployments are exposed to this issue?
ModSecurity v3 deployments from 3.0.15 through versions before 3.0.17 are affected only when XML request body processing is used with SecParseXmlIntoArgs set to On or OnlyArgs. Earlier 3.0.x releases and ModSecurity 2.x do not use the affected code path.
Does exploitation require authentication or user interaction?
No. An attacker can trigger the issue with a single crafted HTTP request and does not need authentication or user interaction.
What is the likely operational impact of a successful exploit?
The memory corruption can terminate a ModSecurity worker, causing a denial of service. It may also disclose memory or redirect execution.
What should teams do to remediate the issue?
Upgrade to ModSecurity 3.0.17, which fixes the issue. If an immediate upgrade is not possible, avoid the affected processing path by ensuring SecParseXmlIntoArgs is not set to On or OnlyArgs.