ZeroHour

CVE-2026-82439

niche

Unauthenticated Memory Exhaustion in Apache Storm DRPC Server

CVSS 3.1
9.8 critical
EPSS
Published
()
Modified
AI analysis

Apache Storm's DRPC server creates a queue entry the first time it sees a function name and never removes it, so retained state accumulates for the life of the process (CWE-770, allocation without limits). Because function names come from the client and are not constrained to functions any topology has registered, an attacker can drive unbounded heap growth simply by sending requests with many distinct function names. The drpc.authorizer setting is unset by default, so no credentials are required to reach the DRPC endpoint, and any party with network access to the DRPC ports can exhaust the server's heap and take it down — a denial of service whose effect is permanent rather than a transient load spike. Apache Storm deployments running DRPC servers on versions prior to 3.1.0 are affected. No public proof of concept or exploitation is known, the CVE is not in CISA's KEV catalog, and no CVSS score has been assigned yet.

What to do: Upgrade to Apache Storm 3.1.0, where a function's queue is removed once nothing is waiting in it. If you cannot upgrade immediately, configure drpc.authorizer so only trusted principals can reach the DRPC endpoints, and ensure the DRPC ports are not reachable from untrusted networks. Also review DRPC server heap usage and logs for unexplained growth from many distinct function names, which would indicate probing.

Affected
Apache Stormall versions prior to 3.1.0 (fixed in 3.1.0)
Estimated exposure
nichelikely hundreds to low thousands of DRPC-enabled Storm clusters, with only a subset having DRPC ports reachable by untrusted parties (clearly an estimate) — Apache Storm is an on-premises distributed stream-processing framework with no public install counts, and DRPC is an optional component typically deployed on internal cluster networks, so real-world exposure is limited to deployments where…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Description The DRPC server kept a map from function name to request queue and created an entry the first time a function name was seen. No code path ever removed an entry: request cleanup removed the request from its queue, and the shutdown path drained queues, but the queue object and its map entry remained for the life of the process. Function names come from the client and are not constrained to functions any topology has registered, so the number of retained entries is bounded only by the number of distinct names an attacker chooses to send, and each retained entry holds the name itself. `drpc.authorizer` is unset by default, so no credentials are required to reach the endpoint. The retained state is permanent rather than a transient load spike, so the effect accumulates until the DRPC server exhausts its heap. Mitigation Upgrade to 3.1.0, where a function's queue is removed once nothing is waiting in it. Users who cannot upgrade immediately should configure `drpc.authorizer` so that only trusted principals can reach the DRPC endpoints, and should ensure the DRPC ports are not reachable from untrusted networks. Credit The ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.

Weakness
CWE-770
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

CVE-2026-82439: Apache Storm DRPC: Unauthenticated Unbounded Memory Growth in DRPC

Unauthenticated DRPC requests to Apache Storm 3.0.0 cause unbounded memory growth in the function-name queue map, enabling DoS.

CVE-2026-82439 (severity: important) affects Apache Storm DRPC (storm-server) versions 3.0.0 before 3.1.0. The DRPC server maintained a map from function name to request queue, creating an entry on first sight of a name, but no code path ever removed entries: request cleanup removed requests from queues but the queue objects and map entries persisted. An unauthenticated attacker could send requests for arbitrary function names to drive unbounded memory growth and crash the server.

oss-security · 2d agoVulnerabilityCVE-2026-82439