{"api_version":"1","generated_at":"2026-09-14T15:13:13+00:00","cve":"CVE-2026-82439","urls":{"html":"https://cve.report/CVE-2026-82439","api":"https://cve.report/api/cve/CVE-2026-82439.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-82439","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-82439"},"summary":{"title":"Apache Storm DRPC: Unauthenticated Unbounded Memory Growth in DRPC","description":"Description\n\nThe DRPC server kept a map from function name to request queue and created an entry the first time a\nfunction name was seen. No code path ever removed an entry: request cleanup removed the request from its\nqueue, and the shutdown path drained queues, but the queue object and its map entry remained for the life of\nthe process.\n\nFunction names come from the client and are not constrained to functions any topology has registered, so the\nnumber of retained entries is bounded only by the number of distinct names an attacker chooses to send, and\neach retained entry holds the name itself. `drpc.authorizer` is unset by default, so no credentials are\nrequired to reach the endpoint.\n\nThe retained state is permanent rather than a transient load spike, so the effect accumulates until the DRPC\nserver exhausts its heap.\n\nMitigation\n\nUpgrade to 3.1.0, where a function's queue is removed once nothing is waiting in it.\n\nUsers who cannot upgrade immediately should configure `drpc.authorizer` so that only trusted principals can\nreach the DRPC endpoints, and should ensure the DRPC ports are not reachable from untrusted networks.\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 14:17:12","updated_at":"2026-09-14 14:17:12"},"problem_types":["CWE-770","CWE-770 CWE-770 Allocation of resources without limits or throttling"],"metrics":[],"references":[{"url":"https://lists.apache.org/thread/7sgzvv5lzz93jn6vy74qfk105bhmkrzs","name":"https://lists.apache.org/thread/7sgzvv5lzz93jn6vy74qfk105bhmkrzs","refsource":"security@apache.org","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"http://www.openwall.com/lists/oss-security/2026/09/13/18","name":"http://www.openwall.com/lists/oss-security/2026/09/13/18","refsource":"ADP","tags":[]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-82439","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-82439","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Apache Software Foundation","product":"Apache Storm DRPC","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-14T14:13:45.333Z","orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE"},"references":[{"url":"http://www.openwall.com/lists/oss-security/2026/09/13/18"}],"title":"CVE Program Container"}],"cna":{"affected":[{"collectionURL":"https://repo.maven.apache.org/maven2","defaultStatus":"unaffected","packageName":"org.apache.storm:storm-server","product":"Apache Storm DRPC","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>The DRPC server kept a map from function name to request queue and created an entry the first time a<br>function name was seen. No code path ever removed an entry: request cleanup removed the request from its<br>queue, and the shutdown path drained queues, but the queue object and its map entry remained for the life of<br>the process.<br><br>Function names come from the client and are not constrained to functions any topology has registered, so the<br>number of retained entries is bounded only by the number of distinct names an attacker chooses to send, and<br>each retained entry holds the name itself. `drpc.authorizer` is unset by default, so no credentials are<br>required to reach the endpoint.<br><br>The retained state is permanent rather than a transient load spike, so the effect accumulates until the DRPC<br>server exhausts its heap.<br><br><b>Mitigation</b><br><br>Upgrade to 3.1.0, where a function's queue is removed once nothing is waiting in it.<br><br>Users who cannot upgrade immediately should configure `drpc.authorizer` so that only trusted principals can<br>reach the DRPC endpoints, and should ensure the DRPC ports are not reachable from untrusted networks.<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\nThe DRPC server kept a map from function name to request queue and created an entry the first time a\nfunction name was seen. No code path ever removed an entry: request cleanup removed the request from its\nqueue, and the shutdown path drained queues, but the queue object and its map entry remained for the life of\nthe process.\n\nFunction names come from the client and are not constrained to functions any topology has registered, so the\nnumber of retained entries is bounded only by the number of distinct names an attacker chooses to send, and\neach retained entry holds the name itself. `drpc.authorizer` is unset by default, so no credentials are\nrequired to reach the endpoint.\n\nThe retained state is permanent rather than a transient load spike, so the effect accumulates until the DRPC\nserver exhausts its heap.\n\nMitigation\n\nUpgrade to 3.1.0, where a function's queue is removed once nothing is waiting in it.\n\nUsers who cannot upgrade immediately should configure `drpc.authorizer` so that only trusted principals can\nreach the DRPC endpoints, and should ensure the DRPC ports are not reachable from untrusted networks.\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-770","description":"CWE-770 Allocation of resources without limits or throttling","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-09-14T14:00:09.318Z","orgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","shortName":"apache"},"references":[{"tags":["vendor-advisory"],"url":"https://lists.apache.org/thread/7sgzvv5lzz93jn6vy74qfk105bhmkrzs"}],"source":{"discovery":"UNKNOWN"},"title":"Apache Storm DRPC: Unauthenticated Unbounded Memory Growth in DRPC","x_generator":{"engine":"Vulnogram 1.0.3"}}},"cveMetadata":{"assignerOrgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","assignerShortName":"apache","cveId":"CVE-2026-82439","datePublished":"2026-09-14T14:00:09.318Z","dateReserved":"2026-08-29T10:40:16.365Z","dateUpdated":"2026-09-14T14:13:45.333Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-14 14:17:12","lastModifiedDate":"2026-09-14 14:17:12","problem_types":["CWE-770","CWE-770 CWE-770 Allocation of resources without limits or throttling"],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"82439","Ordinal":"1","Title":"Apache Storm DRPC: Unauthenticated Unbounded Memory Growth in DR","CVE":"CVE-2026-82439","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"82439","Ordinal":"1","NoteData":"Description\n\nThe DRPC server kept a map from function name to request queue and created an entry the first time a\nfunction name was seen. No code path ever removed an entry: request cleanup removed the request from its\nqueue, and the shutdown path drained queues, but the queue object and its map entry remained for the life of\nthe process.\n\nFunction names come from the client and are not constrained to functions any topology has registered, so the\nnumber of retained entries is bounded only by the number of distinct names an attacker chooses to send, and\neach retained entry holds the name itself. `drpc.authorizer` is unset by default, so no credentials are\nrequired to reach the endpoint.\n\nThe retained state is permanent rather than a transient load spike, so the effect accumulates until the DRPC\nserver exhausts its heap.\n\nMitigation\n\nUpgrade to 3.1.0, where a function's queue is removed once nothing is waiting in it.\n\nUsers who cannot upgrade immediately should configure `drpc.authorizer` so that only trusted principals can\nreach the DRPC endpoints, and should ensure the DRPC ports are not reachable from untrusted networks.\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 DRPC: Unauthenticated Unbounded Memory Growth in DR"}]}}}