Skip to content
Heist/ feed
Back to feed
High

Next.js: Middleware / Proxy bypass through dynamic route parameter injection

Type: advisorySources: OSV

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 source

Published 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"
}