{"id":"CVE-2026-27979","summary":"Next.js: Unbounded postponed resume buffering can lead to DoS","details":"Next.js is a React framework for building full-stack web applications. Starting in version 16.0.1 and prior to version 16.1.7, a request containing the `next-resume: 1` header (corresponding with a PPR resume request) would buffer request bodies without consistently enforcing `maxPostponedStateSize` in certain setups. The previous mitigation protected minimal-mode deployments, but equivalent non-minimal deployments remained vulnerable to the same unbounded postponed resume-body buffering behavior. In applications using the App Router with Partial Prerendering capability enabled (via `experimental.ppr` or `cacheComponents`), an attacker could send oversized `next-resume` POST payloads that were buffered without consistent size enforcement in non-minimal deployments, causing excessive memory usage and potential denial of service. This is fixed in version 16.1.7 by enforcing size limits across all postponed-body buffering paths and erroring when limits are exceeded. If upgrading is not immediately possible, block requests containing the `next-resume` header, as this is never valid to be sent from an untrusted client.","aliases":["GHSA-h27x-g6w4-24gq"],"modified":"2026-04-10T05:37:34.649128Z","published":"2026-03-18T00:13:29.748Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27979.json","cwe_ids":["CWE-770"],"cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/vercel/next.js/releases/tag/v16.1.7"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27979.json"},{"type":"ADVISORY","url":"https://github.com/vercel/next.js/security/advisories/GHSA-h27x-g6w4-24gq"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-27979"},{"type":"FIX","url":"https://github.com/vercel/next.js/commit/c885d4825f800dd1e49ead37274dcd08cdd6f3f1"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/vercel/next.js","events":[{"introduced":"e08402bfad8db05b0df820daf4f08c9c65ab1f7b"},{"fixed":"bdf3e3577a6d55ea186a48238d61fbd8da07a626"}]}],"versions":["v16.0.1","v16.0.2-canary.0","v16.0.2-canary.1","v16.0.2-canary.10","v16.0.2-canary.11","v16.0.2-canary.12","v16.0.2-canary.13","v16.0.2-canary.14","v16.0.2-canary.15","v16.0.2-canary.16","v16.0.2-canary.17","v16.0.2-canary.18","v16.0.2-canary.19","v16.0.2-canary.2","v16.0.2-canary.20","v16.0.2-canary.21","v16.0.2-canary.22","v16.0.2-canary.23","v16.0.2-canary.24","v16.0.2-canary.25","v16.0.2-canary.26","v16.0.2-canary.27","v16.0.2-canary.28","v16.0.2-canary.29","v16.0.2-canary.3","v16.0.2-canary.30","v16.0.2-canary.31","v16.0.2-canary.32","v16.0.2-canary.33","v16.0.2-canary.34","v16.0.2-canary.4","v16.0.2-canary.5","v16.0.2-canary.6","v16.0.2-canary.7","v16.0.2-canary.8","v16.0.2-canary.9","v16.1.0","v16.1.0-canary.0","v16.1.0-canary.1","v16.1.0-canary.10","v16.1.0-canary.11","v16.1.0-canary.12","v16.1.0-canary.13","v16.1.0-canary.14","v16.1.0-canary.15","v16.1.0-canary.16","v16.1.0-canary.17","v16.1.0-canary.18","v16.1.0-canary.19","v16.1.0-canary.2","v16.1.0-canary.20","v16.1.0-canary.21","v16.1.0-canary.22","v16.1.0-canary.23","v16.1.0-canary.24","v16.1.0-canary.25","v16.1.0-canary.26","v16.1.0-canary.27","v16.1.0-canary.28","v16.1.0-canary.29","v16.1.0-canary.3","v16.1.0-canary.30","v16.1.0-canary.31","v16.1.0-canary.32","v16.1.0-canary.33","v16.1.0-canary.34","v16.1.0-canary.4","v16.1.0-canary.5","v16.1.0-canary.6","v16.1.0-canary.7","v16.1.0-canary.8","v16.1.0-canary.9","v16.1.1","v16.1.2","v16.1.3","v16.1.4","v16.1.5","v16.1.6"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-27979.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N"}]}