CVE-2026-5038 (GCVE-0-2026-5038)
Vulnerability from cvelistv5
Published
2026-06-15 14:23
Modified
2026-06-15 16:07
CWE
Summary
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 the underlying fs.WriteStream. An attacker can exhaust disk space by triggering many aborted uploads, with no application bug required. Patches: 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. Workarounds: None.
Impacted products
Vendor Product Version
multer multer Version: 2.0.0-alpha.1   
Version: 3.0.0-alpha.1   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-5038",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "yes"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-06-15T16:07:25.876003Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-06-15T16:07:45.114Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/multer",
          "product": "multer",
          "vendor": "multer",
          "versions": [
            {
              "lessThan": "2.2.0",
              "status": "affected",
              "version": "2.0.0-alpha.1",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "2.2.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.0.0-alpha.2",
              "status": "affected",
              "version": "3.0.0-alpha.1",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "3.0.0-alpha.2",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "remediation reviewer",
          "value": "yuki-matsuhashi"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "HamdaanAliQuatil"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "fasrm"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "UlisesGascon"
        },
        {
          "lang": "en",
          "type": "remediation reviewer",
          "value": "bjohansebas"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "0xStraw-Hat"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "bhaswanthc"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "ByamB4"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "sbouabid-sec"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "DavidCarliez"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "JebeenLee"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "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."
            }
          ],
          "value": "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."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 5.3,
            "baseSeverity": "MEDIUM",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-459",
              "description": "CWE-459: Incomplete Cleanup",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-06-15T14:23:24.230Z",
        "orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
        "shortName": "openjs"
      },
      "references": [
        {
          "url": "https://github.com/expressjs/multer/security/advisories/GHSA-3p4h-7m6x-2hcm"
        },
        {
          "url": "https://cna.openjsf.org/security-advisories.html"
        }
      ],
      "title": "multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads",
      "x_generator": {
        "engine": "cve-kit 1.0.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
    "assignerShortName": "openjs",
    "cveId": "CVE-2026-5038",
    "datePublished": "2026-06-15T14:23:24.230Z",
    "dateReserved": "2026-03-27T16:26:09.638Z",
    "dateUpdated": "2026-06-15T16:07:45.114Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-5038\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-06-15T16:07:25.876003Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-06-15T16:07:33.955Z\"}}], \"cna\": {\"title\": \"multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads\", \"credits\": [{\"lang\": \"en\", \"type\": \"remediation reviewer\", \"value\": \"yuki-matsuhashi\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"HamdaanAliQuatil\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"fasrm\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"UlisesGascon\"}, {\"lang\": \"en\", \"type\": \"remediation reviewer\", \"value\": \"bjohansebas\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"0xStraw-Hat\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"bhaswanthc\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"ByamB4\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"sbouabid-sec\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"DavidCarliez\"}, {\"lang\": \"en\", \"type\": \"finder\", \"value\": \"JebeenLee\"}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 5.3, \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"vendor\": \"multer\", \"product\": \"multer\", \"versions\": [{\"status\": \"affected\", \"version\": \"2.0.0-alpha.1\", \"lessThan\": \"2.2.0\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"2.2.0\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"3.0.0-alpha.1\", \"lessThan\": \"3.0.0-alpha.2\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"3.0.0-alpha.2\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:npm/multer\", \"defaultStatus\": \"unaffected\"}], \"references\": [{\"url\": \"https://github.com/expressjs/multer/security/advisories/GHSA-3p4h-7m6x-2hcm\"}, {\"url\": \"https://cna.openjsf.org/security-advisories.html\"}], \"x_generator\": {\"engine\": \"cve-kit 1.0.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"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.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"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.\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-459\", \"description\": \"CWE-459: Incomplete Cleanup\"}]}], \"providerMetadata\": {\"orgId\": \"ce714d77-add3-4f53-aff5-83d477b104bb\", \"shortName\": \"openjs\", \"dateUpdated\": \"2026-06-15T14:23:24.230Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-5038\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-06-15T16:07:45.114Z\", \"dateReserved\": \"2026-03-27T16:26:09.638Z\", \"assignerOrgId\": \"ce714d77-add3-4f53-aff5-83d477b104bb\", \"datePublished\": \"2026-06-15T14:23:24.230Z\", \"assignerShortName\": \"openjs\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…