{"id":"CVE-2026-5038","aliases":["EUVD-2026-36728","GHSA-3p4h-7m6x-2hcm","ROOT-APP-NPM-CVE-2026-5038"],"status":"published","title":"multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads","description":"Impact: multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a Denial of Service when using diskStorage. Aborted or malformed multipart uploads leave orphaned partial files on disk because the Readable.pipe() call does not propagate the stream destroy signal to \nthe underlying fs.WriteStream. An attacker can exhaust disk space by triggering many aborted uploads, with no application bug required.\n\nPatches: Users should upgrade to multer 2.2.0 (2.x line) or 3.0.0-alpha.2 (3.x prerelease). Both versions track in-flight write streams and clean them up on the abort path.\n\nWorkarounds: None.","severity":{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00367,"percentile":0.30769,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-459"],"published":"2026-06-15T14:23:24Z","modified":"2026-10-29T19:15:03Z","fixes":[{"ecosystem":"npm","package":"multer","fixed_in":["2.2.0","3.0.0-alpha.2"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"multer","fixed_in":["2.0.2-aikido.5","2.0.2-aikido.6","2.1.1-aikido.3","2.1.1-aikido.2","2.1.1-aikido.4","2.0.2-aikido.7","2.2.0-aikido.1","2.2.0-aikido.2"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/multer","fixed_in":["2.0.2-root.io.5","2.0.2-root.io.6","2.1.1-root.io.3","2.1.1-root.io.2","2.1.1-root.io.4","2.0.2-root.io.7","2.2.0-root.io.1","2.2.0-root.io.2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0-alpha.1"},{"fixed":"2.2.0"}]}]},{"source":"ghsa","ecosystem":"npm","package":"multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0-alpha.1"},{"fixed":"3.0.0-alpha.2"}]}]},{"source":"osv","ecosystem":"npm","package":"multer","ranges":[{"type":"SEMVER","events":[{"introduced":"2.0.0-alpha.1"},{"fixed":"2.2.0"}]}]},{"source":"osv","ecosystem":"npm","package":"multer","ranges":[{"type":"SEMVER","events":[{"introduced":"3.0.0-alpha.1"},{"fixed":"3.0.0-alpha.2"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.2-aikido.5"},{"fixed":"2.0.2-aikido.6"},{"fixed":"2.1.1-aikido.3"},{"fixed":"2.1.1-aikido.2"},{"fixed":"2.1.1-aikido.4"},{"fixed":"2.0.2-aikido.7"},{"fixed":"2.2.0-aikido.1"},{"fixed":"2.2.0-aikido.2"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.2-root.io.5"},{"fixed":"2.0.2-root.io.6"},{"fixed":"2.1.1-root.io.3"},{"fixed":"2.1.1-root.io.2"},{"fixed":"2.1.1-root.io.4"},{"fixed":"2.0.2-root.io.7"},{"fixed":"2.2.0-root.io.1"},{"fixed":"2.2.0-root.io.2"}]}]}],"products":[{"vendor":"expressjs","product":"multer"},{"vendor":"multer","product":"multer"}],"references":[{"url":"https://github.com/expressjs/multer/security/advisories/GHSA-3p4h-7m6x-2hcm","tags":["Vendor Advisory","advisory","web"]},{"url":"https://cna.openjsf.org/security-advisories.html","tags":["Vendor Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-5038","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-3p4h-7m6x-2hcm"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/5xxx/CVE-2026-5038.json","tags":["advisory"]},{"url":"https://github.com/expressjs/multer","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-5038","title":"multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads","description":"Impact: multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a Denial of Service when using diskStorage. Aborted or malformed multipart uploads leave orphaned partial files on disk because the Readable.pipe() call does not propagate the stream destroy signal to \nthe underlying fs.WriteStream. An attacker can exhaust disk space by triggering many aborted uploads, with no application bug required.\n\nPatches: Users should upgrade to multer 2.2.0 (2.x line) or 3.0.0-alpha.2 (3.x prerelease). Both versions track in-flight write streams and clean them up on the abort path.\n\nWorkarounds: None.","status":"published","published":"2026-06-15T14:23:24.23Z","modified":"2026-06-15T16:07:45.114Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-459"],"updated_at":"2026-11-02T13:39:39.001586Z"}],"euvd":[{"id":"EUVD-2026-36728","description":"Impact: multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a Denial of Service when using diskStorage. Aborted or malformed multipart uploads leave orphaned partial files on disk because the Readable.pipe() call does not propagate the stream destroy signal to \nthe underlying fs.WriteStream. An attacker can exhaust disk space by triggering many aborted uploads, with no application bug required.\n\nPatches: Users should upgrade to multer 2.2.0 (2.x line) or 3.0.0-alpha.2 (3.x prerelease). Both versions track in-flight write streams and clean them up on the abort path.\n\nWorkarounds: None.","status":"published","published":"2026-06-15T14:23:24Z","modified":"2026-06-15T16:07:45Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"updated_at":"2026-11-02T18:20:41.888684Z"}],"ghsa":[{"id":"GHSA-3p4h-7m6x-2hcm","title":"Multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads","description":"### Impact\n\nA vulnerability in Multer allows an attacker to trigger a Denial of Service (DoS) by aborting or sending malformed multipart uploads, causing orphaned partial files to accumulate on disk when using diskStorage.\n\n### Patches\n\nUsers should upgrade to `2.2.0`, `3.0.0-alpha.2` or higher\n\n### Workarounds\n\nNone","status":"published","published":"2026-06-17T18:11:48Z","modified":"2026-06-17T18:11:50Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"cwes":["CWE-459"],"updated_at":"2026-11-02T14:40:28.438722Z"}],"nvd":[{"id":"CVE-2026-5038","description":"Impact: multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a Denial of Service when using diskStorage. Aborted or malformed multipart uploads leave orphaned partial files on disk because the Readable.pipe() call does not propagate the stream destroy signal to \nthe underlying fs.WriteStream. An attacker can exhaust disk space by triggering many aborted uploads, with no application bug required.\n\nPatches: Users should upgrade to multer 2.2.0 (2.x line) or 3.0.0-alpha.2 (3.x prerelease). Both versions track in-flight write streams and clean them up on the abort path.\n\nWorkarounds: None.","status":"published","published":"2026-06-15T16:16:34.423Z","modified":"2026-06-17T10:58:19.45Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","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":"primary"}],"cwes":["CWE-459"],"updated_at":"2026-11-02T14:12:23.846948Z"}],"osv":[{"id":"CVE-2026-5038","title":"multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads","description":"Impact: multer versions 2.0.0-alpha.1 through 2.1.1 and 3.0.0-alpha.1 are vulnerable to a Denial of Service when using diskStorage. Aborted or malformed multipart uploads leave orphaned partial files on disk because the Readable.pipe() call does not propagate the stream destroy signal to \nthe underlying fs.WriteStream. An attacker can exhaust disk space by triggering many aborted uploads, with no application bug required.\n\nPatches: Users should upgrade to multer 2.2.0 (2.x line) or 3.0.0-alpha.2 (3.x prerelease). Both versions track in-flight write streams and clean them up on the abort path.\n\nWorkarounds: None.","status":"published","published":"2026-06-15T14:23:24.23Z","modified":"2026-10-28T02:30:42.099307399Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"cwes":["CWE-459"],"updated_at":"2026-11-02T15:45:07.431113Z"},{"id":"GHSA-3p4h-7m6x-2hcm","title":"Multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads","description":"### Impact\n\nA vulnerability in Multer allows an attacker to trigger a Denial of Service (DoS) by aborting or sending malformed multipart uploads, causing orphaned partial files to accumulate on disk when using diskStorage.\n\n### Patches\n\nUsers should upgrade to `2.2.0`, `3.0.0-alpha.2` or higher\n\n### Workarounds\n\nNone","status":"published","published":"2026-06-17T18:11:48Z","modified":"2026-06-17T18:26:29.614554Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"cwes":["CWE-459"],"updated_at":"2026-11-02T15:46:35.747385Z"},{"id":"ROOT-APP-NPM-CVE-2026-5038","title":"CVE-2026-5038 in multer - Patched by Root","description":"Root has patched CVE-2026-5038 in the multer package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-10-29T18:47:25Z","modified":"2026-10-29T19:15:03.152589757Z","updated_at":"2026-11-02T15:53:27.649662Z"}]}}
