Description
Description

Nimbus instantiates the class named by a topology's `topology.scheduler.strategy` when scheduling it. The
allowlist intended to constrain that choice, `nimbus.scheduler.strategy.class.whitelist`, was treated as
"allow any class" when unset, and it had no entry in the shipped `defaults.yaml`, so unset was the shipped
state. An authenticated submitter could therefore cause Nimbus to instantiate any class on the Nimbus
classpath that has a no-argument constructor.

Storm's own production artifacts contain classes with side effects suitable for this: instantiating
`org.apache.storm.testing.InProcessZookeeper` starts a ZooKeeper server with its own threads and sockets
and nothing closes it, and `org.apache.storm.LocalCluster` behaves similarly. Repeated submissions
therefore consume threads, sockets and memory in the most privileged daemon in the cluster.

Mitigation

Upgrade to 3.1.0, where an unset allowlist means the strategies shipped with Storm rather than any class.

Note that this is a behaviour change: a cluster running an out-of-tree scheduler strategy without an
explicit allowlist will have those topologies refused until the class is added to
`nimbus.scheduler.strategy.class.whitelist`. The rejection message names the refused class and the
configuration key.

Users who cannot upgrade immediately should set `nimbus.scheduler.strategy.class.whitelist` explicitly to
the strategies they intend to permit.
Published: 2026-11-09
Score: n/a
EPSS: n/a
KEV: No
Impact: Remote code execution
Action: Immediate Patch
AI Analysis

Impact

Nimbus instantiates the class specified by a topology’s `topology.scheduler.strategy`. The allowlist controlling this behavior, `nimbus.scheduler.strategy.class.whitelist`, defaults to permitting any class when unset, allowing an authenticated submitter to cause Nimbus to instantiate arbitrary classes on the Nimbus classpath that have a no‑argument constructor. Malicious or unintended classes such as `org.apache.storm.testing.InProcessZookeeper` or `org.apache.storm.LocalCluster` can start services, consume sockets, threads, and memory, and do not shut down, resulting in code execution and potential denial‑of‑service at the cluster level.

Affected Systems

Apache Software Foundation – Apache Storm Nimbus. Any deployment that has not been updated to at least version 3.1.0 and lacks an explicit `nimbus.scheduler.strategy.class.whitelist` is vulnerable. The fix in 3.1.0 changes the default behaviour so that an unset allowlist permits only the built‑in scheduling strategies shipped with Storm.

Risk and Exploitability

The vulnerability does not have an EPSS score or KEV listing, but the CVSS score is not provided. Because the attacker requires the ability to submit topologies, the threat is confined to authenticated submitters who have privileged access to the cluster. However, once a malicious strategy class is instantiated, code runs with the Nimbus daemon’s privileges, leading to remote code execution and resource exhaustion. The exploit is straightforward for a legitimate user with topology‑submission rights, making this a high‑risk vulnerability in environments where topology submissions are not tightly controlled.

Generated by OpenCVE AI on November 9, 2026 at 11:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Apache Storm Nimbus to version 3.1.0 or later, where the allowlist defaults to the shipped strategies;
  • Configure `nimbus.scheduler.strategy.class.whitelist` to list only the scheduler strategy classes that are explicitly trusted for your cluster;
  • If an upgrade cannot be performed immediately, set the whitelist explicitly prior to accepting topology submissions and monitor for rejection messages detailing any disallowed classes.

Generated by OpenCVE AI on November 9, 2026 at 11:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 09 Nov 2026 17:00:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache storm Nimbus
Vendors & Products Apache
Apache storm Nimbus

Mon, 09 Nov 2026 11:30:00 +0000

Type Values Removed Values Added
References

Mon, 09 Nov 2026 10:15:00 +0000

Type Values Removed Values Added
Description Description Nimbus instantiates the class named by a topology's `topology.scheduler.strategy` when scheduling it. The allowlist intended to constrain that choice, `nimbus.scheduler.strategy.class.whitelist`, was treated as "allow any class" when unset, and it had no entry in the shipped `defaults.yaml`, so unset was the shipped state. An authenticated submitter could therefore cause Nimbus to instantiate any class on the Nimbus classpath that has a no-argument constructor. Storm's own production artifacts contain classes with side effects suitable for this: instantiating `org.apache.storm.testing.InProcessZookeeper` starts a ZooKeeper server with its own threads and sockets and nothing closes it, and `org.apache.storm.LocalCluster` behaves similarly. Repeated submissions therefore consume threads, sockets and memory in the most privileged daemon in the cluster. Mitigation Upgrade to 3.1.0, where an unset allowlist means the strategies shipped with Storm rather than any class. Note that this is a behaviour change: a cluster running an out-of-tree scheduler strategy without an explicit allowlist will have those topologies refused until the class is added to `nimbus.scheduler.strategy.class.whitelist`. The rejection message names the refused class and the configuration key. Users who cannot upgrade immediately should set `nimbus.scheduler.strategy.class.whitelist` explicitly to the strategies they intend to permit.
Title Apache Storm Nimbus: Submitter-Controlled Class Instantiation in Nimbus via a Fail-Open Scheduler Strategy Allowlist
Weaknesses CWE-470
References

Subscriptions

Apache Storm Nimbus
cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-11-09T10:13:16.862Z

Reserved: 2026-08-29T10:42:00.358Z

Link: CVE-2026-82440

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-09T10:17:11.797

Modified: 2026-11-09T11:17:26.333

Link: CVE-2026-82440

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T16:36:40Z

Weaknesses
  • CWE-470

    Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')