Next.js: Middleware / Proxy bypass through dynamic route parameter injection
Next.js is a React framework for building full-stack web applications. From 15.4.0 to before 15.5.16 and 16.2.5, applications that rely on middleware to protect dynamic routes can be vulnerable to authorization bypass. In affected deployments, specially crafted query parameters can alter the dynamic route value seen by the page while leaving the visible path unchanged, which can allow protected content to be rendered without passing the expected middleware check. This vulnerability is fixed in 15.5.16 and 16.2.5.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-44574
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 8 Nov 2026, 03:10 UTC · Revision 1
Source evidence
Next.js: Middleware / Proxy bypass through dynamic route parameter injection
core-osv · Original sourcePublished 13 May 2026, 16:56 UTC
Next.js is a React framework for building full-stack web applications. From 15.4.0 to before 15.5.16 and 16.2.5, applications that rely on middleware to protect dynamic routes can be vulnerable to authorization bypass. In affected deployments, specially crafted query parameters can alter the dynamic route value seen by the page while leaving the visible path unchanged, which can allow protected content to be rendered without passing the expected middleware check. This vulnerability is fixed in 15.5.16 and 16.2.5.
osv:CVE-2026-44574
Complete source record
{
"id": "3c729032b204181f05f1c568f11c9ee53ea982d5e49b83b9dad453356bd8749a",
"url": "https://osv.dev/vulnerability/CVE-2026-44574",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Next.js: Middleware / Proxy bypass through dynamic route parameter injection",
"summary": "Next.js is a React framework for building full-stack web applications. From 15.4.0 to before 15.5.16 and 16.2.5, applications that rely on middleware to protect dynamic routes can be vulnerable to authorization bypass. In affected deployments, specially crafted query parameters can alter the dynamic route value seen by the page while leaving the visible path unchanged, which can allow protected content to be rendered without passing the expected middleware check. This vulnerability is fixed in 15.5.16 and 16.2.5.",
"evidence": "osv:CVE-2026-44574",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-44574",
"aliases": [
"CVE-2026-44574",
"GHSA-492v-c6pp-mqqv"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/vercel/next.js",
"type": "GIT",
"events": [
{
"introduced": "7ad467409b67691ae4f5dc4dc47f1a247c4ba988"
},
{
"fixed": "ad6fd4e50e5aba20b60d283c42b89273a3167ccd"
},
{
"introduced": "950609f96f694c5475d18cd2d72a0052ca04d4b9"
},
{
"fixed": "766148f9cd48c0e218acafcd0f15defc14871bf4"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "15.4.0"
},
{
"fixed": "15.5.16"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "16.0.0"
},
{
"fixed": "16.2.5"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v15.5.15",
"v16.2.4",
"v16.2.3",
"v16.2.2",
"v15.5.14",
"v16.2.1",
"v15.5.13",
"v16.2.0",
"v16.2.0-canary.104",
"v16.2.0-canary.103",
"v16.2.0-canary.102",
"v16.2.0-canary.101",
"v15.5.12",
"v16.2.0-canary.100",
"v16.2.0-canary.99",
"v16.2.0-canary.98",
"v16.2.0-canary.97",
"v16.2.0-canary.96",
"v16.2.0-canary.95",
"v16.2.0-canary.94",
"v16.2.0-canary.93",
"v16.2.0-canary.92",
"v16.2.0-canary.91",
"v16.2.0-canary.90",
"v16.2.0-canary.89",
"v16.2.0-canary.88",
"v16.2.0-canary.87",
"v16.2.0-canary.86",
"v16.2.0-canary.85",
"v16.2.0-canary.84",
"v16.2.0-canary.83",
"v16.2.0-canary.82",
"v16.2.0-canary.81",
"v16.2.0-canary.78",
"v16.2.0-canary.80",
"v16.2.0-canary.79",
"v16.2.0-canary.77",
"v16.2.0-canary.76",
"v16.2.0-canary.75",
"v16.2.0-canary.74",
"v16.2.0-canary.71",
"v16.2.0-canary.73",
"v16.2.0-canary.69",
"v16.2.0-canary.72",
"v16.2.0-canary.70",
"v16.2.0-canary.68",
"v16.2.0-canary.67",
"v16.2.0-canary.66",
"v16.2.0-canary.65",
"v16.2.0-canary.64",
"v16.2.0-canary.63",
"v16.2.0-canary.62",
"v16.2.0-canary.61",
"v16.2.0-canary.60",
"v16.2.0-canary.59",
"v16.2.0-canary.58",
"v16.2.0-canary.57",
"v16.2.0-canary.56",
"v16.2.0-canary.55",
"v16.2.0-canary.54",
"v16.2.0-canary.53",
"v16.2.0-canary.52",
"v16.2.0-canary.51",
"v16.2.0-canary.50",
"v16.2.0-canary.49",
"v16.2.0-canary.48",
"v16.2.0-canary.47",
"v16.2.0-canary.46",
"v16.2.0-canary.45",
"v16.2.0-canary.44",
"v16.2.0-canary.43",
"v16.2.0-canary.42",
"v16.2.0-canary.41",
"v16.2.0-canary.40",
"v16.2.0-canary.39",
"v16.2.0-canary.38",
"v16.2.0-canary.37",
"v16.2.0-canary.36",
"v16.2.0-canary.35",
"v16.2.0-canary.34",
"v16.2.0-canary.33",
"v16.2.0-canary.32",
"v16.2.0-canary.31",
"v16.2.0-canary.30",
"v16.2.0-canary.29",
"v16.2.0-canary.28",
"v16.2.0-canary.27",
"v16.2.0-canary.26",
"v16.2.0-canary.25",
"v16.2.0-canary.24",
"v16.2.0-canary.23",
"v16.2.0-canary.22",
"v16.2.0-canary.21",
"v16.2.0-canary.20",
"v16.2.0-canary.19",
"v16.2.0-canary.18",
"v16.2.0-canary.17",
"v16.2.0-canary.16",
"v16.2.0-canary.15",
"v15.5.11",
"v16.2.0-canary.14",
"v15.5.10",
"v16.2.0-canary.11",
"v16.2.0-canary.13",
"v16.2.0-canary.12",
"v16.2.0-canary.10",
"v16.2.0-canary.9",
"v15.5.9",
"v16.2.0-canary.8",
"v16.2.0-canary.7",
"v16.2.0-canary.6",
"v16.2.0-canary.5",
"v16.2.0-canary.4",
"v16.2.0-canary.3",
"v16.2.0-canary.2",
"v16.2.0-canary.1",
"v16.2.0-canary.0",
"v16.1.1-canary.36",
"v16.1.1-canary.35",
"v16.1.1-canary.34",
"v16.1.1-canary.33",
"v16.1.1-canary.32",
"v16.1.1-canary.30",
"v16.1.1-canary.31",
"v16.1.1-canary.29",
"v16.1.1-canary.28",
"v16.1.1-canary.27",
"v16.1.1-canary.26",
"v16.1.1-canary.25",
"v16.1.1-canary.24",
"v16.1.1-canary.23",
"v16.1.1-canary.22",
"v16.1.1-canary.21",
"v16.1.1-canary.20",
"v16.1.1-canary.19",
"v16.1.1-canary.18",
"v16.1.1-canary.17",
"v16.1.1-canary.16",
"v16.1.1-canary.15",
"v16.1.1-canary.14",
"v16.1.1-canary.13",
"v16.1.1-canary.12",
"v16.1.1-canary.11",
"v16.1.1-canary.10",
"v16.1.1-canary.9",
"v16.1.1-canary.8",
"v16.1.1-canary.7",
"v16.1.1-canary.6",
"v16.1.1-canary.5",
"v16.1.1-canary.4",
"v16.1.0",
"v16.1.1-canary.3",
"v16.1.1-canary.2",
"v16.1.1-canary.1",
"v16.1.1-canary.0",
"v16.1.0-canary.34",
"v16.1.0-canary.33",
"v16.1.0-canary.32",
"v16.1.0-canary.31",
"v16.1.0-canary.30",
"v16.1.0-canary.29",
"v16.1.0-canary.28",
"v16.1.0-canary.27",
"v16.1.0-canary.26",
"v16.1.0-canary.25",
"v16.1.0-canary.24",
"v16.1.0-canary.23",
"v16.1.0-canary.22",
"v16.1.0-canary.21",
"v16.1.0-canary.20",
"v16.1.0-canary.19",
"v15.5.8",
"v16.1.0-canary.18",
"v16.1.0-canary.17",
"v15.5.7",
"v16.1.0-canary.16",
"v16.1.0-canary.15",
"v16.1.0-canary.14",
"v16.1.0-canary.13",
"v16.1.0-canary.11",
"v16.1.0-canary.12",
"v15.5.6",
"v16.1.0-canary.10",
"v16.1.0-canary.9",
"v16.1.0-canary.8",
"v16.1.0-canary.7",
"v16.1.0-canary.4",
"v16.1.0-canary.6",
"v16.1.0-canary.5",
"v16.1.0-canary.3",
"v16.1.0-canary.2",
"v16.1.0-canary.1",
"v16.1.0-canary.0",
"v16.0.2-canary.34",
"v16.0.2-canary.33",
"v16.0.2-canary.32",
"v16.0.2-canary.31",
"v16.0.2-canary.30",
"v16.0.2-canary.29",
"v16.0.2-canary.28",
"v16.0.2-canary.27",
"v16.0.2-canary.26",
"v16.0.2-canary.25",
"v16.0.2-canary.24",
"v16.0.2-canary.23",
"v16.0.2-canary.22",
"v16.0.2-canary.21",
"v16.0.2-canary.20",
"v16.0.2-canary.19",
"v16.0.2-canary.18",
"v16.0.2-canary.17",
"v16.0.2-canary.16",
"v16.0.1",
"v16.0.2-canary.15",
"v16.0.2-canary.14",
"v16.0.2-canary.13",
"v16.0.2-canary.12",
"v16.0.2-canary.11",
"v16.0.2-canary.10",
"v16.0.2-canary.9",
"v16.0.2-canary.8",
"v16.0.2-canary.7",
"v16.0.2-canary.6",
"v16.0.2-canary.5",
"v16.0.2-canary.4",
"v16.0.2-canary.3",
"v16.0.2-canary.2",
"v16.0.2-canary.1",
"v16.0.2-canary.0",
"v16.0.1-canary.6",
"v16.0.1-canary.5",
"v16.0.1-canary.4",
"v16.0.1-canary.3",
"v16.0.1-canary.2",
"v16.0.1-canary.1",
"v16.0.1-canary.0",
"v16.0.0",
"v15.5.5",
"v15.5.4",
"v15.5.3",
"v15.5.2",
"v15.5.1",
"v15.5.0",
"v15.4.2-canary.56",
"v15.4.2-canary.55",
"v15.4.2-canary.54",
"v15.4.2-canary.53",
"v15.4.2-canary.51",
"v15.4.2-canary.52",
"v15.4.2-canary.50",
"v15.4.2-canary.49",
"v15.4.2-canary.48",
"v15.4.2-canary.47",
"v15.4.2-canary.46",
"v15.4.2-canary.45",
"v15.4.2-canary.44",
"v15.4.2-canary.43",
"v15.4.2-canary.42",
"v15.4.2-canary.41",
"v15.4.2-canary.40",
"v15.4.2-canary.39",
"v15.4.2-canary.38",
"v15.4.2-canary.37",
"v15.4.2-canary.36",
"v15.4.2-canary.35",
"v15.4.2-canary.34",
"v15.4.2-canary.33",
"v15.4.2-canary.32",
"v15.4.2-canary.31",
"v15.4.2-canary.30",
"v15.4.2-canary.29",
"v15.4.2-canary.28",
"v15.4.2-canary.27",
"v15.4.2-canary.26",
"v15.4.2-canary.25",
"v15.4.2-canary.24",
"v15.4.2-canary.23",
"v15.4.2-canary.22",
"v15.4.2-canary.21",
"v15.4.2-canary.20",
"v15.4.2-canary.19",
"v15.4.2-canary.18",
"v15.4.2-canary.17",
"v15.4.2-canary.16",
"v15.4.2-canary.15",
"v15.4.2-canary.14",
"v15.4.2-canary.13",
"v15.4.2-canary.5",
"v15.4.2-canary.12",
"v15.4.2-canary.11",
"v15.4.2-canary.10",
"v15.4.2-canary.9",
"v15.4.2-canary.8",
"v15.4.2-canary.7",
"v15.4.2-canary.6",
"v15.4.2-canary.4",
"v15.4.2-canary.3",
"v15.4.2-canary.2",
"v15.4.2-canary.1",
"v15.4.1",
"v15.4.2-canary.0",
"v15.4.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44574.json"
}
}
],
"modified": "2026-10-28T02:30:53.414754080Z",
"provider": "osv",
"references": [
"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-44574.json",
"https://access.redhat.com/errata/RHSA-2026:34608",
"https://access.redhat.com/errata/RHSA-2026:37272",
"https://access.redhat.com/errata/RHSA-2026:40974",
"https://access.redhat.com/errata/RHSA-2026:54435",
"https://access.redhat.com/security/cve/CVE-2026-44574",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44574.json",
"https://github.com/vercel/next.js/security/advisories/GHSA-492v-c6pp-mqqv",
"https://nvd.nist.gov/vuln/detail/CVE-2026-44574",
"https://bugzilla.redhat.com/show_bug.cgi?id=2477207"
],
"provider_metadata": {
"cwe_ids": [
"CWE-288"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44574.json"
}
},
"related_cves": [
{
"value": "CVE-2026-44574",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 522093,
"published_at": "2026-05-13T16:56:06.008+00:00"
}