{"api_version":"1","generated_at":"2026-09-14T19:16:28+00:00","cve":"CVE-2026-82428","urls":{"html":"https://cve.report/CVE-2026-82428","api":"https://cve.report/api/cve/CVE-2026-82428.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-82428","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-82428"},"summary":{"title":"Apache Storm Client: Cross-Tenant Dependency Jar Substitution via Predictable Blob Keys","description":"Description\n\nDependency artifacts uploaded with `storm jar --artifacts` were stored under a blob key derived only from\nthe Maven coordinate, for example `dep---.jar`. The key was therefore identical\nfor every user of the cluster and predictable in advance. When the blob already existed, the uploader\ncaught `KeyAlreadyExistsException` and silently reused it, with no check that the existing blob's content\nor owner matched the artifact the submitter had resolved.\n\nA user who uploaded a blob under such a key first therefore controlled the bytes that every later submitter\nof the same coordinate would receive on the worker classpath, resulting in code execution inside another\ntenant's topology.\n\nThis affects deployments where more than one principal may create blobs and where the `--artifacts`\ndependency feature is used.\n\nMitigation\n\nUpgrade to 3.1.0, where each uploaded artifact receives a key carrying a freshly generated UUID and a\npre-existing blob is no longer silently reused.\n\nNote that the corrected key generation is on the SUBMITTING CLIENT, so upgrading the cluster alone does not\nclose this; every client that runs `storm jar --artifacts` must also be upgraded. Operators should audit\nexisting `dep-` blobs for unexpected owners before upgrading. Users who cannot upgrade immediately should\navoid the `--artifacts` mechanism in multi-tenant clusters and distribute dependencies inside the topology\njar instead.\n\nCredit\n\nThe ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.","state":"PUBLISHED","assigner":"apache","published_at":"2026-09-14 15:17:09","updated_at":"2026-09-14 16:17:20"},"problem_types":["CWE-22","CWE-22 CWE-22  Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')"],"metrics":[],"references":[{"url":"https://lists.apache.org/thread/pj3fspp4l10fgk2jkvrnqsmxycmjv622","name":"https://lists.apache.org/thread/pj3fspp4l10fgk2jkvrnqsmxycmjv622","refsource":"security@apache.org","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"http://www.openwall.com/lists/oss-security/2026/09/13/8","name":"http://www.openwall.com/lists/oss-security/2026/09/13/8","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-82428","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-82428","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Apache Software Foundation","product":"Apache Storm Client","version":"affected 3.0.0 3.1.0 semver","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"The ASF using Claude Agents","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"providerMetadata":{"dateUpdated":"2026-09-14T15:13:41.895Z","orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE"},"references":[{"url":"http://www.openwall.com/lists/oss-security/2026/09/13/8"}],"title":"CVE Program Container"}],"cna":{"affected":[{"collectionURL":"https://repo.maven.apache.org/maven2","defaultStatus":"unaffected","packageName":"org.apache.storm:storm-client","product":"Apache Storm Client","vendor":"Apache Software Foundation","versions":[{"lessThan":"3.1.0","status":"affected","version":"3.0.0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"The ASF using Claude Agents"}],"descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<b>Description</b><br><br>Dependency artifacts uploaded with `storm jar --artifacts` were stored under a blob key derived only from<br>the Maven coordinate, for example `dep---.jar`. The key was therefore identical<br>for every user of the cluster and predictable in advance. When the blob already existed, the uploader<br>caught `KeyAlreadyExistsException` and silently reused it, with no check that the existing blob's content<br>or owner matched the artifact the submitter had resolved.<br><br>A user who uploaded a blob under such a key first therefore controlled the bytes that every later submitter<br>of the same coordinate would receive on the worker classpath, resulting in code execution inside another<br>tenant's topology.<br><br>This affects deployments where more than one principal may create blobs and where the `--artifacts`<br>dependency feature is used.<br><br><b>Mitigation</b><br><br>Upgrade to 3.1.0, where each uploaded artifact receives a key carrying a freshly generated UUID and a<br>pre-existing blob is no longer silently reused.<br><br>Note that the corrected key generation is on the SUBMITTING CLIENT, so upgrading the cluster alone does not<br>close this; every client that runs `storm jar --artifacts` must also be upgraded. Operators should audit<br>existing `dep-` blobs for unexpected owners before upgrading. Users who cannot upgrade immediately should<br>avoid the `--artifacts` mechanism in multi-tenant clusters and distribute dependencies inside the topology<br>jar instead.<br><br><b>Credit</b><br><br>The ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.<br>"}],"value":"Description\n\nDependency artifacts uploaded with `storm jar --artifacts` were stored under a blob key derived only from\nthe Maven coordinate, for example `dep---.jar`. The key was therefore identical\nfor every user of the cluster and predictable in advance. When the blob already existed, the uploader\ncaught `KeyAlreadyExistsException` and silently reused it, with no check that the existing blob's content\nor owner matched the artifact the submitter had resolved.\n\nA user who uploaded a blob under such a key first therefore controlled the bytes that every later submitter\nof the same coordinate would receive on the worker classpath, resulting in code execution inside another\ntenant's topology.\n\nThis affects deployments where more than one principal may create blobs and where the `--artifacts`\ndependency feature is used.\n\nMitigation\n\nUpgrade to 3.1.0, where each uploaded artifact receives a key carrying a freshly generated UUID and a\npre-existing blob is no longer silently reused.\n\nNote that the corrected key generation is on the SUBMITTING CLIENT, so upgrading the cluster alone does not\nclose this; every client that runs `storm jar --artifacts` must also be upgraded. Operators should audit\nexisting `dep-` blobs for unexpected owners before upgrading. Users who cannot upgrade immediately should\navoid the `--artifacts` mechanism in multi-tenant clusters and distribute dependencies inside the topology\njar instead.\n\nCredit\n\nThe ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm."}],"metrics":[{"other":{"content":{"text":"important"},"type":"Textual description of severity"},"scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-22","description":"CWE-22  Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-09-14T14:18:09.921Z","orgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","shortName":"apache"},"references":[{"tags":["vendor-advisory"],"url":"https://lists.apache.org/thread/pj3fspp4l10fgk2jkvrnqsmxycmjv622"}],"source":{"discovery":"UNKNOWN"},"title":"Apache Storm Client: Cross-Tenant Dependency Jar Substitution via Predictable Blob Keys","x_generator":{"engine":"Vulnogram 1.0.3"}}},"cveMetadata":{"assignerOrgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","assignerShortName":"apache","cveId":"CVE-2026-82428","datePublished":"2026-09-14T14:18:09.921Z","dateReserved":"2026-08-29T10:09:55.176Z","dateUpdated":"2026-09-14T15:13:41.895Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-14 15:17:09","lastModifiedDate":"2026-09-14 16:17:20","problem_types":["CWE-22","CWE-22 CWE-22  Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')"],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"82428","Ordinal":"1","Title":"Apache Storm Client: Cross-Tenant Dependency Jar Substitution vi","CVE":"CVE-2026-82428","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"82428","Ordinal":"1","NoteData":"Description\n\nDependency artifacts uploaded with `storm jar --artifacts` were stored under a blob key derived only from\nthe Maven coordinate, for example `dep---.jar`. The key was therefore identical\nfor every user of the cluster and predictable in advance. When the blob already existed, the uploader\ncaught `KeyAlreadyExistsException` and silently reused it, with no check that the existing blob's content\nor owner matched the artifact the submitter had resolved.\n\nA user who uploaded a blob under such a key first therefore controlled the bytes that every later submitter\nof the same coordinate would receive on the worker classpath, resulting in code execution inside another\ntenant's topology.\n\nThis affects deployments where more than one principal may create blobs and where the `--artifacts`\ndependency feature is used.\n\nMitigation\n\nUpgrade to 3.1.0, where each uploaded artifact receives a key carrying a freshly generated UUID and a\npre-existing blob is no longer silently reused.\n\nNote that the corrected key generation is on the SUBMITTING CLIENT, so upgrading the cluster alone does not\nclose this; every client that runs `storm jar --artifacts` must also be upgraded. Operators should audit\nexisting `dep-` blobs for unexpected owners before upgrading. Users who cannot upgrade immediately should\navoid the `--artifacts` mechanism in multi-tenant clusters and distribute dependencies inside the topology\njar instead.\n\nCredit\n\nThe ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.","Type":"Description","Title":"Apache Storm Client: Cross-Tenant Dependency Jar Substitution vi"}]}}}