NGINX Map directive and Regex matching vulnerability
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 37.0.3.1, R36 P7, 1.31.3, 1.30.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- 12 proofs of concept on GitHub
- Exploitation: poc
- Automatable: no
- Technical impact: total
Summary
A vulnerability exists in NGINX Plus and NGINX Open Source when a map directive uses regex matching and a string expression references the map's regex capture variables before referencing the map output variable. Alternatively, the same result could be achieved by using a non-cacheable variable in a string expression under certain conditions. An unauthenticated attacker along with conditions beyond their control can exploit this vulnerability by sending crafted HTTP requests. This may cause a heap buffer overflow in the NGINX worker process leading to a restart. Additionally, attackers can execute code on systems with Address Space Layout Randomization (ASLR) disabled or when the attacker can bypass ASLR. Impact: This vulnerability may allow remote attackers to cause a denial-of-service (DoS) on the NGINX system or to possibly trigger a code execution. There is no control plane exposure; this is a data plane issue only. Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.
Timeline
- CISA SSVC assessment
Exploitation: poc · Automatable: no · Technical impact: total
- CVE published
- Record last updated
Affected versions
- F5 NGINX Plus
From 37.0.0.1 · fixed in 37.0.3.1; From R36 · fixed in R36 P7; From R33
- F5 NGINX Open Source
From 1.31.2 · fixed in 1.31.3; From 0.9.6 · fixed in 1.30.4