{"api_version":"1","generated_at":"2026-09-03T11:41:48+00:00","cve":"CVE-2026-18549","urls":{"html":"https://cve.report/CVE-2026-18549","api":"https://cve.report/api/cve/CVE-2026-18549.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-18549","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-18549"},"summary":{"title":"@fastify/multipart vulnerable to Denial of Service via aborted upload after fileSize limit","description":"@fastify/multipart is a multipart form-data parser for Fastify. In versions from 5.3.0 up to but not including 10.1.1, when the busboy fileSize limit truncates a file part, the plugin clears its internal current-file reference while the underlying stream is still open. If the client then aborts the connection before sending the terminating boundary, the abort cleanup finds no stream to destroy, so saveRequestFiles() never settles, the request handler hangs, and the temporary file already written to disk is never cleaned up. An unauthenticated client can repeat this to permanently leak temporary files and suspended handler executions, leading to disk and event-loop exhaustion. The issue is fixed in @fastify/multipart 10.1.1. Users should upgrade to 10.1.1.","state":"PUBLISHED","assigner":"openjs","published_at":"2026-08-15 14:17:07","updated_at":"2026-09-02 15:13:16"},"problem_types":["CWE-400","CWE-664","CWE-400 CWE-400: Uncontrolled Resource Consumption","CWE-664 CWE-664: Improper Control of a Resource Through its Lifetime"],"metrics":[{"version":"3.1","source":"ce714d77-add3-4f53-aff5-83d477b104bb","type":"Secondary","score":"7.5","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"CVSS","score":"7.5","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","data":{"baseScore":7.5,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"references":[{"url":"https://cna.openjsf.org/security-advisories.html","name":"https://cna.openjsf.org/security-advisories.html","refsource":"ce714d77-add3-4f53-aff5-83d477b104bb","tags":["Third Party Advisory"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/fastify/fastify-multipart/security/advisories/GHSA-vmph-573x-85f6","name":"https://github.com/fastify/fastify-multipart/security/advisories/GHSA-vmph-573x-85f6","refsource":"ce714d77-add3-4f53-aff5-83d477b104bb","tags":["Mitigation","Vendor Advisory"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-18549","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-18549","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"@fastify/multipart","product":"@fastify/multipart","version":"affected 5.3.0 10.1.1 semver","platforms":[]},{"source":"CNA","vendor":"@fastify/multipart","product":"@fastify/multipart","version":"unaffected 10.1.1 semver","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"iaohkut-from-NightWolf-Team","lang":"en"},{"source":"CNA","value":"UlisesGascon","lang":"en"},{"source":"CNA","value":"mcollina","lang":"en"}],"nvd_cpes":[{"cve_year":"2026","cve_id":"18549","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"fastify","cpe5":"fastify-multipart","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"fastify","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"18549","cve":"CVE-2026-18549","epss":"0.003400000","percentile":"0.268270000","score_date":"2026-09-02","updated_at":"2026-09-03 00:14:35"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-18549","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-08-17T19:43:46.284783Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-08-17T19:44:01.262Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"defaultStatus":"unaffected","packageURL":"pkg:npm/@fastify/multipart","product":"@fastify/multipart","vendor":"@fastify/multipart","versions":[{"lessThan":"10.1.1","status":"affected","version":"5.3.0","versionType":"semver"},{"status":"unaffected","version":"10.1.1","versionType":"semver"}]}],"credits":[{"lang":"en","type":"reporter","value":"iaohkut-from-NightWolf-Team"},{"lang":"en","type":"remediation developer","value":"UlisesGascon"},{"lang":"en","type":"remediation reviewer","value":"mcollina"}],"descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"@fastify/multipart is a multipart form-data parser for Fastify. In versions from 5.3.0 up to but not including 10.1.1, when the busboy fileSize limit truncates a file part, the plugin clears its internal current-file reference while the underlying stream is still open. If the client then aborts the connection before sending the terminating boundary, the abort cleanup finds no stream to destroy, so saveRequestFiles() never settles, the request handler hangs, and the temporary file already written to disk is never cleaned up. An unauthenticated client can repeat this to permanently leak temporary files and suspended handler executions, leading to disk and event-loop exhaustion. The issue is fixed in @fastify/multipart 10.1.1. Users should upgrade to 10.1.1."}],"value":"@fastify/multipart is a multipart form-data parser for Fastify. In versions from 5.3.0 up to but not including 10.1.1, when the busboy fileSize limit truncates a file part, the plugin clears its internal current-file reference while the underlying stream is still open. If the client then aborts the connection before sending the terminating boundary, the abort cleanup finds no stream to destroy, so saveRequestFiles() never settles, the request handler hangs, and the temporary file already written to disk is never cleaned up. An unauthenticated client can repeat this to permanently leak temporary files and suspended handler executions, leading to disk and event-loop exhaustion. The issue is fixed in @fastify/multipart 10.1.1. Users should upgrade to 10.1.1."}],"metrics":[{"cvssV3_1":{"baseScore":7.5,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-400","description":"CWE-400: Uncontrolled Resource Consumption","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-664","description":"CWE-664: Improper Control of a Resource Through its Lifetime","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-08-15T13:26:53.782Z","orgId":"ce714d77-add3-4f53-aff5-83d477b104bb","shortName":"openjs"},"references":[{"url":"https://github.com/fastify/fastify-multipart/security/advisories/GHSA-vmph-573x-85f6"},{"url":"https://cna.openjsf.org/security-advisories.html"}],"title":"@fastify/multipart vulnerable to Denial of Service via aborted upload after fileSize limit","x_generator":{"engine":"cve-kit 1.0.0"}}},"cveMetadata":{"assignerOrgId":"ce714d77-add3-4f53-aff5-83d477b104bb","assignerShortName":"openjs","cveId":"CVE-2026-18549","datePublished":"2026-08-15T13:26:53.782Z","dateReserved":"2026-07-31T22:18:10.089Z","dateUpdated":"2026-08-17T19:44:01.262Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-15 14:17:07","lastModifiedDate":"2026-09-02 15:13:16","problem_types":["CWE-400","CWE-664","CWE-400 CWE-400: Uncontrolled Resource Consumption","CWE-664 CWE-664: Improper Control of a Resource Through its Lifetime"],"metrics":{"cvssMetricV31":[{"source":"ce714d77-add3-4f53-aff5-83d477b104bb","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"},"exploitabilityScore":3.9,"impactScore":3.6}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-08-17T19:43:46.284783Z","id":"CVE-2026-18549","options":[{"exploitation":"none"},{"automatable":"yes"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:fastify:fastify-multipart:*:*:*:*:*:fastify:*:*","versionStartIncluding":"5.3.0","versionEndExcluding":"10.1.1","matchCriteriaId":"ECE54AB5-BC6F-4FF5-96E4-0991D1177451"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"18549","Ordinal":"1","Title":"@fastify/multipart vulnerable to Denial of Service via aborted u","CVE":"CVE-2026-18549","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"18549","Ordinal":"1","NoteData":"@fastify/multipart is a multipart form-data parser for Fastify. In versions from 5.3.0 up to but not including 10.1.1, when the busboy fileSize limit truncates a file part, the plugin clears its internal current-file reference while the underlying stream is still open. If the client then aborts the connection before sending the terminating boundary, the abort cleanup finds no stream to destroy, so saveRequestFiles() never settles, the request handler hangs, and the temporary file already written to disk is never cleaned up. An unauthenticated client can repeat this to permanently leak temporary files and suspended handler executions, leading to disk and event-loop exhaustion. The issue is fixed in @fastify/multipart 10.1.1. Users should upgrade to 10.1.1.","Type":"Description","Title":"@fastify/multipart vulnerable to Denial of Service via aborted u"}]}}}