{"id":"CVE-2025-47935","aliases":["CLSA-2026-1773879509","EUVD-2025-15797","GHSA-44fp-w29j-9vj5","ROOT-APP-NPM-CVE-2025-47935"],"status":"published","title":"Multer vulnerable to Denial of Service via memory leaks from unclosed streams","description":"Multer is a node.js middleware for handling `multipart/form-data`. Versions prior to 2.0.0 are vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance. This leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted. Users should upgrade to 2.0.0 to receive a patch. No known workarounds are available.","severity":{"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","from":"cve"},"epss":{"day":"2026-11-11","score":0.00795,"percentile":0.56845,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-401"],"published":"2025-05-19T19:18:38Z","modified":"2026-10-28T02:31:09Z","fixes":[{"ecosystem":"npm","package":"multer","fixed_in":["2.0.0"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"multer","fixed_in":["1.4.4-lts.1-aikido.3","1.4.5-lts.2-aikido.9","1.4.5-lts.2-aikido.5","1.4.4-lts.1-aikido.4","1.4.4-aikido.2","1.4.2-aikido.1","1.4.5-lts.1-aikido.2","1.4.5-lts.1-aikido.3","1.4.4-aikido.3","1.4.4-lts.1-aikido.1","1.4.4-aikido.4","1.4.5-lts.1-aikido.1","1.4.4-lts.1-aikido.2","1.4.4-aikido.5","1.4.5-lts.2-aikido.6","1.4.4-aikido.6","1.4.2-aikido.2","1.4.5-lts.2-aikido.7","1.4.5-lts.2-aikido.8"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/multer","fixed_in":["1.4.4-lts.1-root.io.3","1.4.5-lts.2-root.io.2","1.4.5-lts.2-root.io.3","1.4.5-lts.2-root.io.4","1.4.5-lts.2-root.io.9","1.4.5-lts.2-root.io.5","1.4.4-lts.1-root.io.4","1.4.4-root.io.2","1.4.4-root.io.1","1.4.2-root.io.1","1.4.5-lts.1-root.io.2","1.4.5-lts.1-root.io.3","1.4.4-root.io.3","1.4.4-lts.1-root.io.1","1.4.4-root.io.4","1.4.5-lts.1-root.io.1","1.4.4-lts.1-root.io.2","1.4.4-root.io.5","1.4.5-lts.2-root.io.6","1.4.4-root.io.6","1.4.2-root.io.2","1.4.5-lts.2-root.io.7","1.4.5-lts.2-root.io.8"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.4.5-lts.1-tuxcare.0"},{"fixed":"1.4.5-lts.1-tuxcare.1"}]}],"versions":["1.4.5-lts.1"],"bundled":3},{"source":"osv","ecosystem":"npm","package":"multer","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.0.0"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.4-lts.1-aikido.3"},{"fixed":"1.4.5-lts.2-aikido.9"},{"fixed":"1.4.5-lts.2-aikido.5"},{"fixed":"1.4.4-lts.1-aikido.4"},{"fixed":"1.4.4-aikido.2"},{"fixed":"1.4.2-aikido.1"},{"fixed":"1.4.5-lts.1-aikido.2"},{"fixed":"1.4.5-lts.1-aikido.3"},{"fixed":"1.4.4-aikido.3"},{"fixed":"1.4.4-lts.1-aikido.1"},{"fixed":"1.4.4-aikido.4"},{"fixed":"1.4.5-lts.1-aikido.1"},{"fixed":"1.4.4-lts.1-aikido.2"},{"fixed":"1.4.4-aikido.5"},{"fixed":"1.4.5-lts.2-aikido.6"},{"fixed":"1.4.4-aikido.6"},{"fixed":"1.4.2-aikido.2"},{"fixed":"1.4.5-lts.2-aikido.7"},{"fixed":"1.4.5-lts.2-aikido.8"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/multer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.4-lts.1-root.io.3"},{"fixed":"1.4.5-lts.2-root.io.2"},{"fixed":"1.4.5-lts.2-root.io.3"},{"fixed":"1.4.5-lts.2-root.io.4"},{"fixed":"1.4.5-lts.2-root.io.9"},{"fixed":"1.4.5-lts.2-root.io.5"},{"fixed":"1.4.4-lts.1-root.io.4"},{"fixed":"1.4.4-root.io.2"},{"fixed":"1.4.4-root.io.1"},{"fixed":"1.4.2-root.io.1"},{"fixed":"1.4.5-lts.1-root.io.2"},{"fixed":"1.4.5-lts.1-root.io.3"},{"fixed":"1.4.4-root.io.3"},{"fixed":"1.4.4-lts.1-root.io.1"},{"fixed":"1.4.4-root.io.4"},{"fixed":"1.4.5-lts.1-root.io.1"},{"fixed":"1.4.4-lts.1-root.io.2"},{"fixed":"1.4.4-root.io.5"},{"fixed":"1.4.5-lts.2-root.io.6"},{"fixed":"1.4.4-root.io.6"},{"fixed":"1.4.2-root.io.2"},{"fixed":"1.4.5-lts.2-root.io.7"},{"fixed":"1.4.5-lts.2-root.io.8"}]}]}],"products":[{"vendor":"expressjs","product":"multer"}],"references":[{"url":"https://github.com/expressjs/multer/security/advisories/GHSA-44fp-w29j-9vj5","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/expressjs/multer/pull/1120","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/expressjs/multer/commit/2c8505f207d923dd8de13a9f93a4563e59933665","tags":["x_refsource_MISC","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-47935","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-44fp-w29j-9vj5"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/47xxx/CVE-2025-47935.json","tags":["advisory"]},{"url":"https://github.com/expressjs/multer","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-47935","title":"Multer vulnerable to Denial of Service via memory leaks from unclosed streams","description":"Multer is a node.js middleware for handling `multipart/form-data`. Versions prior to 2.0.0 are vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance. This leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted. Users should upgrade to 2.0.0 to receive a patch. No known workarounds are available.","status":"published","published":"2025-05-19T19:18:38.018Z","modified":"2025-05-27T20:28:27.244Z","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","assessor":"cna"}],"cwes":["CWE-401"],"updated_at":"2026-11-02T14:32:25.982948Z"}],"euvd":[{"id":"EUVD-2025-15797","description":"Multer is a node.js middleware for handling `multipart/form-data`. Versions prior to 2.0.0 are vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance. This leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted. Users should upgrade to 2.0.0 to receive a patch. No known workarounds are available.","status":"published","published":"2025-05-19T19:18:38Z","modified":"2025-05-27T20:28:27Z","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"}],"updated_at":"2026-11-02T20:32:37.949923Z"}],"ghsa":[{"id":"GHSA-44fp-w29j-9vj5","title":"Multer vulnerable to Denial of Service via memory leaks from unclosed streams","description":"### Impact\n\nMulter \u003c2.0.0 is vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance.\n\nThis leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted.\n\n\n### Patches\n\nUsers should upgrade to `2.0.0`\n\n\n### Workarounds\n\nNone\n\n### References\n\n- https://github.com/expressjs/multer/pull/1120\n- https://github.com/expressjs/multer/commit/2c8505f207d923dd8de13a9f93a4563e59933665","status":"published","published":"2025-05-19T22:04:17Z","modified":"2025-06-08T07:19:19Z","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"}],"cwes":["CWE-401"],"updated_at":"2026-11-02T14:38:46.901955Z"}],"nvd":[{"id":"CVE-2025-47935","description":"Multer is a node.js middleware for handling `multipart/form-data`. Versions prior to 2.0.0 are vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance. This leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted. Users should upgrade to 2.0.0 to receive a patch. No known workarounds are available.","status":"published","published":"2025-05-19T20:15:25.863Z","modified":"2026-06-17T09:28:51.707Z","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","assessor":"secondary"}],"cwes":["CWE-401"],"updated_at":"2026-11-02T14:11:09.125937Z"}],"osv":[{"id":"CVE-2025-47935","title":"Multer vulnerable to Denial of Service via memory leaks from unclosed streams","description":"Multer is a node.js middleware for handling `multipart/form-data`. Versions prior to 2.0.0 are vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance. This leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted. Users should upgrade to 2.0.0 to receive a patch. No known workarounds are available.","status":"published","published":"2025-05-19T19:18:38.018Z","modified":"2026-10-28T02:31:09.781535411Z","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"}],"cwes":["CWE-401"],"updated_at":"2026-11-02T15:44:50.037003Z"},{"id":"GHSA-44fp-w29j-9vj5","title":"Multer vulnerable to Denial of Service via memory leaks from unclosed streams","description":"### Impact\n\nMulter \u003c2.0.0 is vulnerable to a resource exhaustion and memory leak issue due to improper stream handling. When the HTTP request stream emits an error, the internal `busboy` stream is not closed, violating Node.js stream safety guidance.\n\nThis leads to unclosed streams accumulating over time, consuming memory and file descriptors. Under sustained or repeated failure conditions, this can result in denial of service, requiring manual server restarts to recover. All users of Multer handling file uploads are potentially impacted.\n\n\n### Patches\n\nUsers should upgrade to `2.0.0`\n\n\n### Workarounds\n\nNone\n\n### References\n\n- https://github.com/expressjs/multer/pull/1120\n- https://github.com/expressjs/multer/commit/2c8505f207d923dd8de13a9f93a4563e59933665","status":"published","published":"2025-05-19T22:04:17Z","modified":"2026-09-10T03:50:24.274645853Z","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"}],"cwes":["CWE-401"],"updated_at":"2026-11-02T15:46:36.434231Z"},{"id":"CLSA-2026-1773879509","title":"TuxCare security update for multer (3 CVEs)","description":"TuxCare rebuilt multer to address 3 CVEs. Fixed in 1.4.5-lts.1-tuxcare.1.","status":"published","published":"2026-08-04T14:52:13Z","modified":"2026-10-15T09:47:47.30524478Z","updated_at":"2026-11-02T15:43:43.621843Z"},{"id":"ROOT-APP-NPM-CVE-2025-47935","title":"CVE-2025-47935 in multer - Patched by Root","description":"Root has patched CVE-2025-47935 in the multer package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-09-15T18:19:46Z","modified":"2026-09-15T19:15:03.041621021Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
