Security advisory
NGINX Plus and NGINX Open Source have a vulnerability in the ngx_http_rewrite_module module. This vulnerability exists when the rewrite directive is followed by a rewrite, if, or set directive and an unnamed Perl-Compatible Regular Expression (PCRE) capture (for example, $1, $2) with a replacement string that includes a question mark (?). An unauthenticated attacker along with conditions beyond its 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. Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-42945
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 14:09 UTC · Revision 1
Source evidence
NGINX Plus and NGINX Open Source have a vulnerability in the ngx_http_rewrite_module module. This vulnerability exists when the rewrite directive is followed by a rewrite, if, or set directive and an unnamed Perl-Compatible Regular Expression (PCRE) capture (for example, $1, $2) with a replacement string that includes a question mark (?). An unauthenticated attacker along with conditions beyond its 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. Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.
osv:CVE-2026-42945
Complete source record
{
"id": "f5dd65ce89c27cb93065fcd8d3ff79a397b3991abc461749e8a97ad03d271241",
"url": "https://osv.dev/vulnerability/CVE-2026-42945",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2026-42945",
"summary": "NGINX Plus and NGINX Open Source have a vulnerability in the ngx_http_rewrite_module module. This vulnerability exists when the rewrite directive is followed by a rewrite, if, or set directive and an unnamed Perl-Compatible Regular Expression (PCRE) capture (for example, $1, $2) with a replacement string that includes a question mark (?). An unauthenticated attacker along with conditions beyond its 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. Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.",
"evidence": "osv:CVE-2026-42945",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-42945",
"aliases": [
"BIT-nginx-2026-42945",
"BIT-nginx-gateway-2026-42945",
"CVE-2026-42945"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/nginx/nginx",
"type": "GIT",
"events": [
{
"introduced": "44186f69a3c7792cd9f62018f4e1429614a121ef"
},
{
"last_affected": "6e14e954aaacce9a433d9b07b4653809c7594ab8"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:f5:nginx_open_source:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0.6.27"
},
{
"last_affected": "1.30.0"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"release-1.30.0",
"release-1.29.8",
"release-1.29.7",
"release-1.29.6",
"release-1.29.5",
"release-1.29.4",
"release-1.29.3",
"release-1.29.2",
"release-1.29.1",
"release-1.29.0",
"release-1.27.5",
"release-1.27.4",
"release-1.27.3",
"release-1.27.2",
"release-1.27.1",
"release-1.27.0",
"release-1.25.5",
"release-1.25.4",
"release-1.25.3",
"release-1.25.2",
"release-1.25.1",
"release-1.25.0",
"release-1.23.4",
"release-1.23.3",
"release-1.23.2",
"release-1.23.1",
"release-1.23.0",
"release-1.21.6",
"release-1.21.5",
"release-1.21.4",
"release-1.21.3",
"release-1.21.2",
"release-1.21.1",
"release-1.21.0",
"release-1.19.10",
"release-1.19.9",
"release-1.19.8",
"release-1.19.7",
"release-1.19.6",
"release-1.19.5",
"release-1.19.4",
"release-1.19.3",
"release-1.19.2",
"release-1.19.1",
"release-1.19.0",
"release-1.17.10",
"release-1.17.9",
"release-1.17.8",
"release-1.17.7",
"release-1.17.6",
"release-1.17.5",
"release-1.17.4",
"release-1.17.3",
"release-1.17.2",
"release-1.17.1",
"release-1.17.0",
"release-1.15.12",
"release-1.15.11",
"release-1.15.10",
"release-1.15.9",
"release-1.15.8",
"release-1.15.7",
"release-1.15.6",
"release-1.15.5",
"release-1.15.4",
"release-1.15.3",
"release-1.15.2",
"release-1.15.1",
"release-1.15.0",
"release-1.13.12",
"release-1.13.11",
"release-1.13.10",
"release-1.13.9",
"release-1.13.8",
"release-1.13.7",
"release-1.13.6",
"release-1.13.5",
"release-1.13.4",
"release-1.13.3",
"release-1.13.2",
"release-1.13.1",
"release-1.13.0",
"release-1.11.13",
"release-1.11.12",
"release-1.11.11",
"release-1.11.10",
"release-1.11.9",
"release-1.11.8",
"release-1.11.7",
"release-1.11.6",
"release-1.11.5",
"release-1.11.4",
"release-1.11.3",
"release-1.11.2",
"release-1.11.1",
"release-1.11.0",
"release-1.9.15",
"release-1.9.14",
"release-1.9.13",
"release-1.9.12",
"release-1.9.11",
"release-1.9.10",
"release-1.9.9",
"release-1.9.8",
"release-1.9.7",
"release-1.9.6",
"release-1.9.5",
"release-1.9.4",
"release-1.9.3",
"release-1.9.2",
"release-1.9.1",
"release-1.9.0",
"release-1.7.12",
"release-1.7.11",
"release-1.7.10",
"release-1.7.9",
"release-1.7.8",
"release-1.7.7",
"release-1.7.6",
"release-1.7.5",
"release-1.7.4",
"release-1.7.3",
"release-1.7.2",
"release-1.7.1",
"release-1.7.0",
"release-1.5.13",
"release-1.5.12",
"release-1.5.11",
"release-1.5.10",
"release-1.5.9",
"release-1.5.8",
"release-1.5.7",
"release-1.5.6",
"release-1.5.5",
"release-1.5.4",
"release-1.5.3",
"release-1.5.2",
"release-1.5.1",
"release-1.5.0",
"release-1.4.0",
"release-1.3.16",
"release-1.3.15",
"release-1.3.14",
"release-1.3.13",
"release-1.3.12",
"release-1.3.11",
"release-1.3.10",
"release-1.3.9",
"release-1.3.8",
"release-1.3.7",
"release-1.3.6",
"release-1.3.5",
"release-1.3.4",
"release-1.3.3",
"release-1.3.2",
"release-1.3.1",
"release-1.3.0",
"release-1.2.0",
"release-1.1.19",
"release-1.1.18",
"release-1.1.17",
"release-1.1.16",
"release-1.1.15",
"release-1.1.14",
"release-1.1.13",
"release-1.1.12",
"release-1.1.11",
"release-1.1.10",
"release-1.1.9",
"release-1.1.8",
"release-1.1.7",
"release-1.1.6",
"release-1.1.5",
"release-1.1.4",
"release-1.1.3",
"release-1.1.2",
"release-1.1.1",
"release-1.1.0",
"release-1.0.5",
"release-1.0.4",
"release-1.0.3",
"release-1.0.2",
"release-1.0.1",
"release-1.0.0",
"release-0.9.7",
"release-0.9.6",
"release-0.9.5",
"release-0.9.4",
"release-0.9.3",
"release-0.9.2",
"release-0.9.1",
"release-0.9.0",
"release-0.8.53",
"release-0.8.52",
"release-0.8.51",
"release-0.8.50",
"release-0.8.49",
"release-0.8.48",
"release-0.8.47",
"release-0.8.46",
"release-0.8.45",
"release-0.8.44",
"release-0.8.43",
"release-0.8.42",
"release-0.8.41",
"release-0.8.40",
"release-0.8.39",
"release-0.8.38",
"release-0.8.37",
"release-0.8.36",
"release-0.8.35",
"release-0.8.34",
"release-0.8.33",
"release-0.8.32",
"release-0.8.31",
"release-0.8.30",
"release-0.8.29",
"release-0.8.28",
"release-0.8.27",
"release-0.8.26",
"release-0.8.25",
"release-0.8.24",
"release-0.8.23",
"release-0.8.22",
"release-0.8.21",
"release-0.8.20",
"release-0.8.19",
"release-0.8.18",
"release-0.8.17",
"release-0.8.16",
"release-0.8.15",
"release-0.8.14",
"release-0.8.13",
"release-0.8.12",
"release-0.8.11",
"release-0.8.10",
"release-0.8.9",
"release-0.8.8",
"release-0.8.7",
"release-0.8.6",
"release-0.8.5",
"release-0.8.4",
"release-0.8.3",
"release-0.8.2",
"release-0.8.1",
"release-0.8.0",
"release-0.7.59",
"release-0.7.58",
"release-0.7.57",
"release-0.7.56",
"release-0.7.55",
"release-0.7.54",
"release-0.7.53",
"release-0.7.52",
"release-0.7.51",
"release-0.7.50",
"release-0.7.49",
"release-0.7.48",
"release-0.7.47",
"release-0.7.46",
"release-0.7.45",
"release-0.7.44",
"release-0.7.43",
"release-0.7.42",
"release-0.7.41",
"release-0.7.40",
"release-0.7.39",
"release-0.7.38",
"release-0.7.37",
"release-0.7.36",
"release-0.7.35",
"release-0.7.34",
"release-0.7.33",
"release-0.7.32",
"release-0.7.31",
"release-0.7.30",
"release-0.7.29",
"release-0.7.28",
"release-0.7.27",
"release-0.7.26",
"release-0.7.25",
"release-0.7.24",
"release-0.7.23",
"release-0.7.22",
"release-0.7.21",
"release-0.7.20",
"release-0.7.19",
"release-0.7.18",
"release-0.7.17",
"release-0.7.16",
"release-0.7.15",
"release-0.7.14",
"release-0.7.13",
"release-0.7.12",
"release-0.7.11",
"release-0.7.10",
"release-0.7.9",
"release-0.7.8",
"release-0.7.7",
"release-0.7.6",
"release-0.7.5",
"release-0.7.4",
"release-0.7.3",
"release-0.7.2",
"release-0.7.1",
"release-0.7.0",
"release-0.6.31",
"release-0.6.30",
"release-0.6.29",
"release-0.6.28",
"release-0.6.27"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-42945.json"
}
},
{
"ranges": [
{
"repo": "https://github.com/nginx/nginx-gateway-fabric",
"type": "GIT",
"events": [
{
"introduced": "3a372747333fb1db372af7cf0b18ed7eef7c91f7"
},
{
"last_affected": "532db6a20b2912fe397211eef9f8d564d46a4bdd"
},
{
"introduced": "7dad8b31e3f0c3eadce36fed8c276e83e6583d24"
},
{
"last_affected": "2dacf30b4b9c29f855a9b81ff7079c472ea83661"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:f5:nginx_gateway_fabric:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "1.3.0"
},
{
"last_affected": "1.6.2"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:f5:nginx_gateway_fabric:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.0.0"
},
{
"last_affected": "2.5.1"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-42945.json"
}
}
],
"modified": "2026-10-28T02:30:35.944307643Z",
"provider": "osv",
"references": [
"https://access.redhat.com/security/cve/CVE-2026-42945",
"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-42945.json",
"https://access.redhat.com/errata/RHSA-2026:17417",
"https://access.redhat.com/errata/RHSA-2026:17751",
"https://access.redhat.com/errata/RHSA-2026:17752",
"https://access.redhat.com/errata/RHSA-2026:17753",
"https://access.redhat.com/errata/RHSA-2026:17790",
"https://access.redhat.com/errata/RHSA-2026:17791",
"https://access.redhat.com/errata/RHSA-2026:17792",
"https://access.redhat.com/errata/RHSA-2026:17793",
"https://access.redhat.com/errata/RHSA-2026:17794",
"https://access.redhat.com/errata/RHSA-2026:18029",
"https://access.redhat.com/errata/RHSA-2026:18041",
"https://access.redhat.com/errata/RHSA-2026:18063",
"https://access.redhat.com/errata/RHSA-2026:19159",
"https://access.redhat.com/errata/RHSA-2026:19371",
"https://access.redhat.com/errata/RHSA-2026:19372",
"https://access.redhat.com/errata/RHSA-2026:19374",
"https://access.redhat.com/errata/RHSA-2026:20442",
"https://access.redhat.com/errata/RHSA-2026:20444",
"https://access.redhat.com/errata/RHSA-2026:21275",
"https://access.redhat.com/errata/RHSA-2026:22382",
"https://access.redhat.com/errata/RHSA-2026:22383",
"https://access.redhat.com/errata/RHSA-2026:22388",
"https://access.redhat.com/errata/RHSA-2026:22389",
"https://access.redhat.com/errata/RHSA-2026:22390",
"https://access.redhat.com/errata/RHSA-2026:22393",
"https://access.redhat.com/errata/RHSA-2026:22394",
"https://access.redhat.com/errata/RHSA-2026:22396",
"https://access.redhat.com/errata/RHSA-2026:58981",
"https://depthfirst.com/nginx-rift",
"https://my.f5.com/manage/s/article/K000161019",
"https://bugzilla.redhat.com/show_bug.cgi?id=2477116",
"https://github.com/DepthFirstDisclosures/Nginx-Rift"
],
"provider_metadata": {
"unresolved_ranges": [
{
"cpes": [
"cpe:2.3:a:f5:dos:*:*:*:*:*:nginx:*:*"
],
"vendor_product": "f5:dos",
"extracted_events": [
{
"range": [
{
"introduced": "4.3.0"
},
{
"last_affected": "4.7.0"
}
],
"source": "CPE_RANGE"
}
]
},
{
"cpes": [
"cpe:2.3:a:f5:nginx_ingress_controller:*:*:*:*:*:*:*:*"
],
"vendor_product": "f5:nginx_ingress_controller",
"extracted_events": [
{
"range": [
{
"introduced": "3.5.0"
},
{
"last_affected": "3.7.2"
},
{
"introduced": "4.0.0"
},
{
"last_affected": "4.0.1"
},
{
"introduced": "5.0.0"
},
{
"last_affected": "5.4.1"
}
],
"source": "CPE_RANGE"
}
]
},
{
"cpes": [
"cpe:2.3:a:f5:nginx_instance_manager:*:*:*:*:*:*:*:*"
],
"vendor_product": "f5:nginx_instance_manager",
"extracted_events": [
{
"range": [
{
"introduced": "2.16.0"
},
{
"last_affected": "2.21.1"
}
],
"source": "CPE_RANGE"
}
]
},
{
"cpes": [
"cpe:2.3:a:f5:nginx_plus:*:*:*:*:*:*:*:*"
],
"vendor_product": "f5:nginx_plus",
"extracted_events": [
{
"range": [
{
"introduced": "r32"
},
{
"last_affected": "r36"
}
],
"source": "CPE_RANGE"
}
]
},
{
"cpes": [
"cpe:2.3:a:f5:waf:*:*:*:*:*:nginx:*:*"
],
"vendor_product": "f5:waf",
"extracted_events": [
{
"range": [
{
"introduced": "4.9.0"
},
{
"last_affected": "4.16.0"
},
{
"introduced": "5.1.0"
},
{
"last_affected": "5.8.0"
},
{
"introduced": "5.9.0"
},
{
"last_affected": "5.12.1"
}
],
"source": "CPE_RANGE"
}
]
},
{
"cpes": [
"cpe:2.3:a:f5:dos:4.8.0:*:*:*:*:nginx:*:*"
],
"vendor_product": "f5:dos",
"extracted_events": [
{
"range": [
{
"introduced": "4.8.0"
},
{
"last_affected": "4.8.0"
}
],
"source": "CPE_STRING"
}
]
}
]
}
},
"related_cves": [
{
"value": "CVE-2026-42945",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 503460,
"published_at": "2026-05-13T16:16:50.19+00:00"
}