{"id":"CVE-2024-51479","aliases":["EUVD-2024-3534","GHSA-7gfc-8cq8-jh5f","ROOT-APP-NPM-CVE-2024-51479"],"status":"published","title":"Authorization bypass in Next.js","description":"Next.js is a React framework for building full-stack web applications. In affected versions if a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed for pages directly under the application's root directory. For example: * [Not affected] `https://example.com/` * [Affected] `https://example.com/foo` * [Not affected] `https://example.com/foo/bar`. This issue is patched in Next.js `14.2.15` and later. If your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version. There are no official workarounds for this vulnerability.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.03995,"percentile":0.90607,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-285","CWE-863"],"published":"2024-12-17T15:09:06Z","modified":"2026-10-28T02:30:46Z","fixes":[{"ecosystem":"npm","package":"next","fixed_in":["14.2.15"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"next","fixed_in":["14.2.5-aikido.5","14.2.5-aikido.8","12.1.6-aikido.1","12.1.0-aikido.1","12.1.5-aikido.1","12.2.5-aikido.1","13.4.19-aikido.6","13.4.19-aikido.7","14.2.10-aikido.3","14.2.13-aikido.3","14.0.4-aikido.6","14.0.4-aikido.9","13.4.19-aikido.2","14.1.3-aikido.2","14.1.0-aikido.4","13.3.0-aikido.5","14.0.4-aikido.1","13.4.19-aikido.3","14.0.4-aikido.5","14.0.4-aikido.7","14.0.4-aikido.2","14.1.0-aikido.7","14.1.0-aikido.8","14.0.4-aikido.3","14.2.3-aikido.5","14.2.0-aikido.2","14.0.3-aikido.3","14.2.5-aikido.9","14.2.5-aikido.10","14.2.2-aikido.7","12.3.4-aikido.4","14.1.3-aikido.5","14.0.0-aikido.7","14.2.10-aikido.4","14.2.13-aikido.4","14.2.10-aikido.2","14.1.4-aikido.5","12.3.4-aikido.5","13.2.4-aikido.3","14.2.0-aikido.6","14.0.4-aikido.4","14.2.0-aikido.5","14.2.2-aikido.9","12.3.7-aikido.1","12.3.4-aikido.9","13.1.6-aikido.1","13.2.4-aikido.4","14.2.5-aikido.1","14.0.3-aikido.6","12.3.4-aikido.6","14.0.0-aikido.5","14.2.5-aikido.2","14.2.5-aikido.3","14.2.2-aikido.3","14.2.3-aikido.3","14.2.2-aikido.4","14.2.2-aikido.5","14.2.2-aikido.6","13.5.4-aikido.5","14.1.3-aikido.6","14.2.5-aikido.4","13.3.0-aikido.6","14.0.3-aikido.4","14.2.13-aikido.2","14.2.5-aikido.6","12.3.4-aikido.3","14.0.0-aikido.3","14.1.4-aikido.7","13.3.0-aikido.2","13.5.4-aikido.2","13.5.6-aikido.2","13.2.4-aikido.5","12.3.4-aikido.7","13.3.0-aikido.7","14.0.3-aikido.5","14.1.4-aikido.8","13.5.4-aikido.6","14.1.3-aikido.7","14.0.0-aikido.6","14.2.5-aikido.7","14.2.3-aikido.4","14.2.2-aikido.8","13.4.19-aikido.4","14.2.3-aikido.2","13.5.6-aikido.3","13.5.6-aikido.4","14.1.4-aikido.9","13.2.4-aikido.2","14.1.3-aikido.1","13.3.0-aikido.3","13.5.6-aikido.5","12.3.1-aikido.3","14.1.3-aikido.8","13.2.4-aikido.7","13.5.6-aikido.6","13.5.11-aikido.8","14.0.4-aikido.8","14.1.4-aikido.6","13.3.0-aikido.4","12.3.4-aikido.8","14.1.0-aikido.5","14.0.0-aikido.4","14.1.0-aikido.3","13.5.4-aikido.3","12.3.1-aikido.4","14.2.0-aikido.3","13.4.19-aikido.5","14.0.0-aikido.2","13.5.4-aikido.4","14.1.3-aikido.3","13.3.0-aikido.8","13.1.6-aikido.2","13.2.4-aikido.6","12.1.0-aikido.2","12.1.6-aikido.2","13.5.11-aikido.9","12.3.7-aikido.2","14.0.3-aikido.2","14.1.3-aikido.4","12.1.5-aikido.2","14.2.0-aikido.4","12.2.5-aikido.2","12.3.1-aikido.6","12.3.1-aikido.5","14.1.0-aikido.6","13.5.6-aikido.7","14.2.15-aikido.1","14.2.15-aikido.2","14.2.15-aikido.4","14.2.15-aikido.3","14.2.15-aikido.5","14.2.15-aikido.6"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/next","fixed_in":["14.2.5-root.io.5","14.2.5-root.io.8","12.1.6-root.io.1","12.1.0-root.io.1","12.1.5-root.io.1","12.2.5-root.io.1","13.4.19-root.io.6","13.4.19-root.io.7","14.2.10-root.io.3","14.2.13-root.io.3","14.0.4-root.io.6","14.0.4-root.io.9","13.4.19-root.io.2","14.1.3-root.io.2","14.1.0-root.io.4","13.3.0-root.io.5","14.0.4-root.io.1","14.0.4-root.io.5","13.4.19-root.io.3","14.0.4-root.io.7","14.0.4-root.io.2","14.1.0-root.io.7","14.1.0-root.io.8","14.0.4-root.io.3","14.2.3-root.io.5","14.2.0-root.io.2","14.0.3-root.io.3","14.2.5-root.io.9","14.2.5-root.io.10","14.2.2-root.io.7","12.3.4-root.io.4","14.1.3-root.io.5","14.0.0-root.io.7","14.2.10-root.io.4","14.2.13-root.io.4","14.2.10-root.io.2","14.1.4-root.io.5","12.3.4-root.io.5","13.2.4-root.io.3","14.2.0-root.io.6","14.0.4-root.io.4","14.2.0-root.io.5","14.2.2-root.io.9","12.3.7-root.io.1","12.3.4-root.io.9","13.1.6-root.io.1","13.2.4-root.io.4","14.2.5-root.io.1","14.0.3-root.io.6","12.3.4-root.io.6","14.0.0-root.io.5","14.2.5-root.io.2","14.2.5-root.io.3","14.2.3-root.io.3","14.2.2-root.io.3","14.2.2-root.io.4","13.5.4-root.io.5","14.2.2-root.io.5","14.2.2-root.io.6","14.1.3-root.io.6","14.2.5-root.io.4","13.3.0-root.io.6","14.0.3-root.io.4","14.2.13-root.io.2","14.2.5-root.io.6","12.3.4-root.io.3","14.0.0-root.io.3","14.1.4-root.io.7","13.3.0-root.io.2","13.5.4-root.io.2","13.5.6-root.io.2","13.2.4-root.io.5","12.3.4-root.io.7","13.3.0-root.io.7","14.0.3-root.io.5","14.1.4-root.io.8","13.5.4-root.io.6","14.1.3-root.io.7","14.0.0-root.io.6","14.2.5-root.io.7","14.2.3-root.io.4","14.2.2-root.io.8","13.4.19-root.io.4","14.2.3-root.io.2","13.5.6-root.io.3","13.5.6-root.io.4","14.1.4-root.io.9","13.2.4-root.io.2","14.1.3-root.io.1","13.3.0-root.io.3","13.5.6-root.io.5","12.3.1-root.io.3","13.2.4-root.io.7","14.1.3-root.io.8","13.5.6-root.io.6","13.5.11-root.io.8","14.0.4-root.io.8","14.1.4-root.io.6","13.3.0-root.io.4","12.3.4-root.io.8","14.1.0-root.io.5","14.0.0-root.io.4","14.1.0-root.io.3","13.5.4-root.io.3","12.3.1-root.io.4","14.2.0-root.io.3","13.4.19-root.io.5","14.0.0-root.io.2","13.5.4-root.io.4","14.1.3-root.io.3","13.3.0-root.io.8","13.1.6-root.io.2","13.2.4-root.io.6","12.1.0-root.io.2","12.1.6-root.io.2","13.5.11-root.io.9","12.3.7-root.io.2","14.0.3-root.io.2","14.1.3-root.io.4","12.1.5-root.io.2","14.2.0-root.io.4","12.2.5-root.io.2","12.3.1-root.io.6","12.3.1-root.io.5","14.1.0-root.io.6","13.5.6-root.io.7","14.2.15-root.io.1","14.2.15-root.io.2","14.2.15-root.io.4","14.2.15-root.io.3","14.2.15-root.io.5","14.2.15-root.io.6"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"next","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"9.5.5"},{"fixed":"14.2.15"}]}]},{"source":"osv","ecosystem":"npm","package":"next","ranges":[{"type":"SEMVER","events":[{"introduced":"9.5.5"},{"fixed":"14.2.15"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"next","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.2.5-aikido.5"},{"fixed":"14.2.5-aikido.8"},{"fixed":"12.1.6-aikido.1"},{"fixed":"12.1.0-aikido.1"},{"fixed":"12.1.5-aikido.1"},{"fixed":"12.2.5-aikido.1"},{"fixed":"13.4.19-aikido.6"},{"fixed":"13.4.19-aikido.7"},{"fixed":"14.2.10-aikido.3"},{"fixed":"14.2.13-aikido.3"},{"fixed":"14.0.4-aikido.6"},{"fixed":"14.0.4-aikido.9"},{"fixed":"13.4.19-aikido.2"},{"fixed":"14.1.3-aikido.2"},{"fixed":"14.1.0-aikido.4"},{"fixed":"13.3.0-aikido.5"},{"fixed":"14.0.4-aikido.1"},{"fixed":"13.4.19-aikido.3"},{"fixed":"14.0.4-aikido.5"},{"fixed":"14.0.4-aikido.7"},{"fixed":"14.0.4-aikido.2"},{"fixed":"14.1.0-aikido.7"},{"fixed":"14.1.0-aikido.8"},{"fixed":"14.0.4-aikido.3"},{"fixed":"14.2.3-aikido.5"},{"fixed":"14.2.0-aikido.2"},{"fixed":"14.0.3-aikido.3"},{"fixed":"14.2.5-aikido.9"},{"fixed":"14.2.5-aikido.10"},{"fixed":"14.2.2-aikido.7"},{"fixed":"12.3.4-aikido.4"},{"fixed":"14.1.3-aikido.5"},{"fixed":"14.0.0-aikido.7"},{"fixed":"14.2.10-aikido.4"},{"fixed":"14.2.13-aikido.4"},{"fixed":"14.2.10-aikido.2"},{"fixed":"14.1.4-aikido.5"},{"fixed":"12.3.4-aikido.5"},{"fixed":"13.2.4-aikido.3"},{"fixed":"14.2.0-aikido.6"},{"fixed":"14.0.4-aikido.4"},{"fixed":"14.2.0-aikido.5"},{"fixed":"14.2.2-aikido.9"},{"fixed":"12.3.7-aikido.1"},{"fixed":"12.3.4-aikido.9"},{"fixed":"13.1.6-aikido.1"},{"fixed":"13.2.4-aikido.4"},{"fixed":"14.2.5-aikido.1"},{"fixed":"14.0.3-aikido.6"},{"fixed":"12.3.4-aikido.6"},{"fixed":"14.0.0-aikido.5"},{"fixed":"14.2.5-aikido.2"},{"fixed":"14.2.5-aikido.3"},{"fixed":"14.2.2-aikido.3"},{"fixed":"14.2.3-aikido.3"},{"fixed":"14.2.2-aikido.4"},{"fixed":"14.2.2-aikido.5"},{"fixed":"14.2.2-aikido.6"},{"fixed":"13.5.4-aikido.5"},{"fixed":"14.1.3-aikido.6"},{"fixed":"14.2.5-aikido.4"},{"fixed":"13.3.0-aikido.6"},{"fixed":"14.0.3-aikido.4"},{"fixed":"14.2.13-aikido.2"},{"fixed":"14.2.5-aikido.6"},{"fixed":"12.3.4-aikido.3"},{"fixed":"14.0.0-aikido.3"},{"fixed":"14.1.4-aikido.7"},{"fixed":"13.3.0-aikido.2"},{"fixed":"13.5.4-aikido.2"},{"fixed":"13.5.6-aikido.2"},{"fixed":"13.2.4-aikido.5"},{"fixed":"12.3.4-aikido.7"},{"fixed":"13.3.0-aikido.7"},{"fixed":"14.0.3-aikido.5"},{"fixed":"14.1.4-aikido.8"},{"fixed":"13.5.4-aikido.6"},{"fixed":"14.1.3-aikido.7"},{"fixed":"14.0.0-aikido.6"},{"fixed":"14.2.5-aikido.7"},{"fixed":"14.2.3-aikido.4"},{"fixed":"14.2.2-aikido.8"},{"fixed":"13.4.19-aikido.4"},{"fixed":"14.2.3-aikido.2"},{"fixed":"13.5.6-aikido.3"},{"fixed":"13.5.6-aikido.4"},{"fixed":"14.1.4-aikido.9"},{"fixed":"13.2.4-aikido.2"},{"fixed":"14.1.3-aikido.1"},{"fixed":"13.3.0-aikido.3"},{"fixed":"13.5.6-aikido.5"},{"fixed":"12.3.1-aikido.3"},{"fixed":"14.1.3-aikido.8"},{"fixed":"13.2.4-aikido.7"},{"fixed":"13.5.6-aikido.6"},{"fixed":"13.5.11-aikido.8"},{"fixed":"14.0.4-aikido.8"},{"fixed":"14.1.4-aikido.6"},{"fixed":"13.3.0-aikido.4"},{"fixed":"12.3.4-aikido.8"},{"fixed":"14.1.0-aikido.5"},{"fixed":"14.0.0-aikido.4"},{"fixed":"14.1.0-aikido.3"},{"fixed":"13.5.4-aikido.3"},{"fixed":"12.3.1-aikido.4"},{"fixed":"14.2.0-aikido.3"},{"fixed":"13.4.19-aikido.5"},{"fixed":"14.0.0-aikido.2"},{"fixed":"13.5.4-aikido.4"},{"fixed":"14.1.3-aikido.3"},{"fixed":"13.3.0-aikido.8"},{"fixed":"13.1.6-aikido.2"},{"fixed":"13.2.4-aikido.6"},{"fixed":"12.1.0-aikido.2"},{"fixed":"12.1.6-aikido.2"},{"fixed":"13.5.11-aikido.9"},{"fixed":"12.3.7-aikido.2"},{"fixed":"14.0.3-aikido.2"},{"fixed":"14.1.3-aikido.4"},{"fixed":"12.1.5-aikido.2"},{"fixed":"14.2.0-aikido.4"},{"fixed":"12.2.5-aikido.2"},{"fixed":"12.3.1-aikido.6"},{"fixed":"12.3.1-aikido.5"},{"fixed":"14.1.0-aikido.6"},{"fixed":"13.5.6-aikido.7"},{"fixed":"14.2.15-aikido.1"},{"fixed":"14.2.15-aikido.2"},{"fixed":"14.2.15-aikido.4"},{"fixed":"14.2.15-aikido.3"},{"fixed":"14.2.15-aikido.5"},{"fixed":"14.2.15-aikido.6"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/next","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.2.5-root.io.5"},{"fixed":"14.2.5-root.io.8"},{"fixed":"12.1.6-root.io.1"},{"fixed":"12.1.0-root.io.1"},{"fixed":"12.1.5-root.io.1"},{"fixed":"12.2.5-root.io.1"},{"fixed":"13.4.19-root.io.6"},{"fixed":"13.4.19-root.io.7"},{"fixed":"14.2.10-root.io.3"},{"fixed":"14.2.13-root.io.3"},{"fixed":"14.0.4-root.io.6"},{"fixed":"14.0.4-root.io.9"},{"fixed":"13.4.19-root.io.2"},{"fixed":"14.1.3-root.io.2"},{"fixed":"14.1.0-root.io.4"},{"fixed":"13.3.0-root.io.5"},{"fixed":"14.0.4-root.io.1"},{"fixed":"14.0.4-root.io.5"},{"fixed":"13.4.19-root.io.3"},{"fixed":"14.0.4-root.io.7"},{"fixed":"14.0.4-root.io.2"},{"fixed":"14.1.0-root.io.7"},{"fixed":"14.1.0-root.io.8"},{"fixed":"14.0.4-root.io.3"},{"fixed":"14.2.3-root.io.5"},{"fixed":"14.2.0-root.io.2"},{"fixed":"14.0.3-root.io.3"},{"fixed":"14.2.5-root.io.9"},{"fixed":"14.2.5-root.io.10"},{"fixed":"14.2.2-root.io.7"},{"fixed":"12.3.4-root.io.4"},{"fixed":"14.1.3-root.io.5"},{"fixed":"14.0.0-root.io.7"},{"fixed":"14.2.10-root.io.4"},{"fixed":"14.2.13-root.io.4"},{"fixed":"14.2.10-root.io.2"},{"fixed":"14.1.4-root.io.5"},{"fixed":"12.3.4-root.io.5"},{"fixed":"13.2.4-root.io.3"},{"fixed":"14.2.0-root.io.6"},{"fixed":"14.0.4-root.io.4"},{"fixed":"14.2.0-root.io.5"},{"fixed":"14.2.2-root.io.9"},{"fixed":"12.3.7-root.io.1"},{"fixed":"12.3.4-root.io.9"},{"fixed":"13.1.6-root.io.1"},{"fixed":"13.2.4-root.io.4"},{"fixed":"14.2.5-root.io.1"},{"fixed":"14.0.3-root.io.6"},{"fixed":"12.3.4-root.io.6"},{"fixed":"14.0.0-root.io.5"},{"fixed":"14.2.5-root.io.2"},{"fixed":"14.2.5-root.io.3"},{"fixed":"14.2.3-root.io.3"},{"fixed":"14.2.2-root.io.3"},{"fixed":"14.2.2-root.io.4"},{"fixed":"13.5.4-root.io.5"},{"fixed":"14.2.2-root.io.5"},{"fixed":"14.2.2-root.io.6"},{"fixed":"14.1.3-root.io.6"},{"fixed":"14.2.5-root.io.4"},{"fixed":"13.3.0-root.io.6"},{"fixed":"14.0.3-root.io.4"},{"fixed":"14.2.13-root.io.2"},{"fixed":"14.2.5-root.io.6"},{"fixed":"12.3.4-root.io.3"},{"fixed":"14.0.0-root.io.3"},{"fixed":"14.1.4-root.io.7"},{"fixed":"13.3.0-root.io.2"},{"fixed":"13.5.4-root.io.2"},{"fixed":"13.5.6-root.io.2"},{"fixed":"13.2.4-root.io.5"},{"fixed":"12.3.4-root.io.7"},{"fixed":"13.3.0-root.io.7"},{"fixed":"14.0.3-root.io.5"},{"fixed":"14.1.4-root.io.8"},{"fixed":"13.5.4-root.io.6"},{"fixed":"14.1.3-root.io.7"},{"fixed":"14.0.0-root.io.6"},{"fixed":"14.2.5-root.io.7"},{"fixed":"14.2.3-root.io.4"},{"fixed":"14.2.2-root.io.8"},{"fixed":"13.4.19-root.io.4"},{"fixed":"14.2.3-root.io.2"},{"fixed":"13.5.6-root.io.3"},{"fixed":"13.5.6-root.io.4"},{"fixed":"14.1.4-root.io.9"},{"fixed":"13.2.4-root.io.2"},{"fixed":"14.1.3-root.io.1"},{"fixed":"13.3.0-root.io.3"},{"fixed":"13.5.6-root.io.5"},{"fixed":"12.3.1-root.io.3"},{"fixed":"13.2.4-root.io.7"},{"fixed":"14.1.3-root.io.8"},{"fixed":"13.5.6-root.io.6"},{"fixed":"13.5.11-root.io.8"},{"fixed":"14.0.4-root.io.8"},{"fixed":"14.1.4-root.io.6"},{"fixed":"13.3.0-root.io.4"},{"fixed":"12.3.4-root.io.8"},{"fixed":"14.1.0-root.io.5"},{"fixed":"14.0.0-root.io.4"},{"fixed":"14.1.0-root.io.3"},{"fixed":"13.5.4-root.io.3"},{"fixed":"12.3.1-root.io.4"},{"fixed":"14.2.0-root.io.3"},{"fixed":"13.4.19-root.io.5"},{"fixed":"14.0.0-root.io.2"},{"fixed":"13.5.4-root.io.4"},{"fixed":"14.1.3-root.io.3"},{"fixed":"13.3.0-root.io.8"},{"fixed":"13.1.6-root.io.2"},{"fixed":"13.2.4-root.io.6"},{"fixed":"12.1.0-root.io.2"},{"fixed":"12.1.6-root.io.2"},{"fixed":"13.5.11-root.io.9"},{"fixed":"12.3.7-root.io.2"},{"fixed":"14.0.3-root.io.2"},{"fixed":"14.1.3-root.io.4"},{"fixed":"12.1.5-root.io.2"},{"fixed":"14.2.0-root.io.4"},{"fixed":"12.2.5-root.io.2"},{"fixed":"12.3.1-root.io.6"},{"fixed":"12.3.1-root.io.5"},{"fixed":"14.1.0-root.io.6"},{"fixed":"13.5.6-root.io.7"},{"fixed":"14.2.15-root.io.1"},{"fixed":"14.2.15-root.io.2"},{"fixed":"14.2.15-root.io.4"},{"fixed":"14.2.15-root.io.3"},{"fixed":"14.2.15-root.io.5"},{"fixed":"14.2.15-root.io.6"}]}]}],"products":[{"vendor":"vercel","product":"next.js"}],"references":[{"url":"https://github.com/vercel/next.js/security/advisories/GHSA-7gfc-8cq8-jh5f","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web"]},{"url":"https://github.com/vercel/next.js/releases/tag/v14.2.15","tags":["x_refsource_MISC","Release Notes","web"]},{"url":"https://github.com/vercel/next.js/commit/1c8234eb20bc8afd396b89999a00f06b61d72d7b","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-51479","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7gfc-8cq8-jh5f"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/51xxx/CVE-2024-51479.json","tags":["advisory"]},{"url":"https://github.com/vercel/next.js","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2024-51479","title":"Authorization bypass in Next.js","description":"Next.js is a React framework for building full-stack web applications. In affected versions if a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed for pages directly under the application's root directory. For example: * [Not affected] `https://example.com/` * [Affected] `https://example.com/foo` * [Not affected] `https://example.com/foo/bar`. This issue is patched in Next.js `14.2.15` and later. If your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version. There are no official workarounds for this vulnerability.","status":"published","published":"2024-12-17T18:13:02.806Z","modified":"2024-12-17T20:36:28.402Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-285"],"updated_at":"2026-11-02T14:34:01.972857Z"}],"euvd":[{"id":"EUVD-2024-3534","description":"Next.js is a React framework for building full-stack web applications. In affected versions if a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed for pages directly under the application's root directory. For example: * [Not affected] `https://example.com/` * [Affected] `https://example.com/foo` * [Not affected] `https://example.com/foo/bar`. This issue is patched in Next.js `14.2.15` and later. If your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version. There are no official workarounds for this vulnerability.","status":"published","published":"2024-12-17T18:13:02Z","modified":"2024-12-17T20:36:28Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-03T00:04:34.500778Z"}],"ghsa":[{"id":"GHSA-7gfc-8cq8-jh5f","title":"Next.js authorization bypass vulnerability","description":"### Impact\nIf a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed.\n\n### Patches\nThis issue was patched in Next.js `14.2.15` and later.\n\nIf your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version.\n\n### Workarounds\nThere are no official workarounds for this vulnerability.\n\n#### Credits\nWe'd like to thank [tyage](http://github.com/tyage) (GMO CyberSecurity by IERAE) for responsible disclosure of this issue.","status":"published","published":"2024-12-17T15:09:06Z","modified":"2025-09-10T21:12:24Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-285","CWE-863"],"updated_at":"2026-11-02T14:38:57.074217Z"}],"nvd":[{"id":"CVE-2024-51479","description":"Next.js is a React framework for building full-stack web applications. In affected versions if a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed for pages directly under the application's root directory. For example: * [Not affected] `https://example.com/` * [Affected] `https://example.com/foo` * [Not affected] `https://example.com/foo/bar`. This issue is patched in Next.js `14.2.15` and later. If your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version. There are no official workarounds for this vulnerability.","status":"published","published":"2024-12-17T19:15:06.697Z","modified":"2026-06-17T08:05:46.41Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-285","CWE-863"],"updated_at":"2026-11-02T14:10:40.507978Z"}],"osv":[{"id":"CVE-2024-51479","title":"Authorization bypass in Next.js","description":"Next.js is a React framework for building full-stack web applications. In affected versions if a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed for pages directly under the application's root directory. For example: * [Not affected] `https://example.com/` * [Affected] `https://example.com/foo` * [Not affected] `https://example.com/foo/bar`. This issue is patched in Next.js `14.2.15` and later. If your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version. There are no official workarounds for this vulnerability.","status":"published","published":"2024-12-17T18:13:02.806Z","modified":"2026-10-28T02:30:46.661869295Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-285"],"updated_at":"2026-11-02T15:44:44.032344Z"},{"id":"GHSA-7gfc-8cq8-jh5f","title":"Next.js authorization bypass vulnerability","description":"### Impact\nIf a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed.\n\n### Patches\nThis issue was patched in Next.js `14.2.15` and later.\n\nIf your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version.\n\n### Workarounds\nThere are no official workarounds for this vulnerability.\n\n#### Credits\nWe'd like to thank [tyage](http://github.com/tyage) (GMO CyberSecurity by IERAE) for responsible disclosure of this issue.","status":"published","published":"2024-12-17T15:09:06Z","modified":"2025-09-10T21:12:24Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-285","CWE-863"],"updated_at":"2026-11-02T15:46:41.002603Z"},{"id":"ROOT-APP-NPM-CVE-2024-51479","title":"CVE-2024-51479 in next - Patched by Root","description":"Root has patched CVE-2024-51479 in the next package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-09-22T11:23:10Z","modified":"2026-09-22T12:15:04.647036668Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
