{"id":"CVE-2026-115728","aliases":["EUVD-2026-108939","GHSA-jg4p-7fhp-p32p","GHSA-vwgx-c45f-9873"],"status":"published","title":"@hapi/content 6.0.1 before 6.0.3 ReDoS via Content.disposition() Parameter Parsing","description":"@hapi/content from 6.0.1 before 6.0.3 contains a regular expression denial of service vulnerability in Content.disposition() caused by an incomplete fix for CVE-2026-35213. Unauthenticated remote attackers can send multipart uploads with a long Content-Disposition parameter lacking an equals sign, triggering quadratic backtracking that blocks the event loop.","severity":{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00466,"percentile":0.4083,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-1333"],"published":"2026-04-04T04:23:03Z","modified":"2026-10-28T02:30:54Z","affected":[{"source":"osv","ecosystem":"npm","package":"@hapi/content","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"6.0.1"}]}],"bundled":2}],"products":[{"vendor":"hapijs","product":"@hapi/content"}],"references":[{"url":"https://github.com/hapijs/content/pull/42","tags":["issue-tracking","patch","fix"]},{"url":"https://github.com/hapijs/content/commit/0993851dc7234976a3fce3a7c31662b213c940fd","tags":["patch","fix"]},{"url":"https://github.com/hapijs/content/tree/v6.0.3","tags":["release-notes","advisory"]},{"url":"https://github.com/hapijs/content/blob/v6.0.2/lib/index.js#L96","tags":["technical-description","article"]},{"url":"https://github.com/hapijs/content/security/advisories/GHSA-jg4p-7fhp-p32p","tags":["related","vendor-advisory","advisory","web"]},{"url":"https://www.vulncheck.com/advisories/hapi-content-6.0.1-before-6.0.3-redos-via-content-disposition-parameter-parsing","tags":["third-party-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115728","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-vwgx-c45f-9873"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/115xxx/CVE-2026-115728.json","tags":["advisory"]},{"url":"https://github.com/hapijs/content","tags":["package"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35213.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35213","tags":["advisory"]},{"url":"https://github.com/hapijs/content/pull/38","tags":["fix","web"]}],"sources":{"cve":[{"id":"CVE-2026-115728","title":"@hapi/content 6.0.1 before 6.0.3 ReDoS via Content.disposition() Parameter Parsing","description":"@hapi/content from 6.0.1 before 6.0.3 contains a regular expression denial of service vulnerability in Content.disposition() caused by an incomplete fix for CVE-2026-35213. Unauthenticated remote attackers can send multipart uploads with a long Content-Disposition parameter lacking an equals sign, triggering quadratic backtracking that blocks the event loop.","status":"published","published":"2026-10-23T12:55:08.425Z","modified":"2026-10-26T19:58:39.933Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:20:01.969981Z"}],"euvd":[{"id":"EUVD-2026-108939","description":"@hapi/content from 6.0.1 before 6.0.3 contains a regular expression denial of service vulnerability in Content.disposition() caused by an incomplete fix for CVE-2026-35213. Unauthenticated remote attackers can send multipart uploads with a long Content-Disposition parameter lacking an equals sign, triggering quadratic backtracking that blocks the event loop.","status":"published","published":"2026-10-23T12:55:08Z","modified":"2026-10-26T19:58:39Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T16:59:28.357127Z"}],"ghsa":[{"id":"GHSA-vwgx-c45f-9873","title":"@hapi/content from 6.0.1 before 6.0.3 contains a regular expression denial of service...","description":"@hapi/content from 6.0.1 before 6.0.3 contains a regular expression denial of service vulnerability in Content.disposition() caused by an incomplete fix for CVE-2026-35213. Unauthenticated remote attackers can send multipart uploads with a long Content-Disposition parameter lacking an equals sign, triggering quadratic backtracking that blocks the event loop.","status":"published","published":"2026-10-23T15:31:29Z","modified":"2026-10-23T15:31:38Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/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","level":"high"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:14:19.493811Z"}],"nvd":[{"id":"CVE-2026-115728","description":"@hapi/content from 6.0.1 before 6.0.3 contains a regular expression denial of service vulnerability in Content.disposition() caused by an incomplete fix for CVE-2026-35213. Unauthenticated remote attackers can send multipart uploads with a long Content-Disposition parameter lacking an equals sign, triggering quadratic backtracking that blocks the event loop.","status":"published","published":"2026-10-23T13:17:08.59Z","modified":"2026-10-26T20:17:51.283Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/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","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:13:02.724605Z"}],"osv":[{"id":"CVE-2026-115728","title":"@hapi/content 6.0.1 before 6.0.3 ReDoS via Content.disposition() Parameter Parsing","description":"@hapi/content from 6.0.1 before 6.0.3 contains a regular expression denial of service vulnerability in Content.disposition() caused by an incomplete fix for CVE-2026-35213. Unauthenticated remote attackers can send multipart uploads with a long Content-Disposition parameter lacking an equals sign, triggering quadratic backtracking that blocks the event loop.","status":"published","published":"2026-10-23T12:55:08.425Z","modified":"2026-10-28T02:30:54.930865168Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:44:56.675758Z"},{"id":"CVE-2026-35213","title":"Regular Expression Denial of Service (ReDoS) in @hapi/content HTTP header parsing","description":"@hapi/content provided HTTP Content-* headers parsing. All versions of @hapi/content through 6.0.0 are vulnerable to Regular Expression Denial of Service (ReDoS) via crafted HTTP header values. Three regular expressions used to parse Content-Type and Content-Disposition headers contain patterns susceptible to catastrophic backtracking. This vulnerability is fixed in 6.0.1.","status":"published","published":"2026-04-06T20:08:54.811Z","modified":"2026-10-28T02:30:47.474879864Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:45:02.673625Z"},{"id":"GHSA-jg4p-7fhp-p32p","title":"@hapi/content: Regular Expression Denial of Service (ReDoS) in HTTP header parsing","description":"All versions of `@hapi/content` through 6.0.0 are vulnerable to Regular Expression Denial of Service (ReDoS) via crafted HTTP header values. Three regular expressions used to parse `Content-Type` and `Content-Disposition` headers contain patterns susceptible to catastrophic backtracking. This has been fixed in v6.0.1.\n\n### Impact\n\nDenial of Service. An unauthenticated remote attacker can cause a Node.js process to become unresponsive by sending a single HTTP request with a maliciously crafted header value.\n\n### Patches\n\nFixed by tightening all three regular expressions to eliminate backtracking.\n\n### Workarounds\n\nThere are no known workarounds. Upgrade to the patched version.","status":"published","published":"2026-04-04T04:23:03Z","modified":"2026-10-24T02:55:33.217626279Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"},{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:46:50.336262Z"}]}}
