CVE-2026-82429: Apache Storm Worker Launcher: Local Privilege Escalation to Root via a Time-of-Check Race in the Worker Launcher

Published Sep 13, 2026
·
Updated

Description

The setuid-root worker-launcher binary adjusts ownership and permissions of worker directories by walking the tree with FTS and calling lchown and chmod on each entry's full pathname while running with an effective uid of 0. Both syscalls re-resolve the path at the time of the call, after FTS has classified the entry, and the trees being walked are owned and writable by the untrusted topology user.

A tenant running code on a supervisor node could therefore replace an intermediate directory component with a symbolic link between classification and the privileged operation, redirecting the root-owned lchown or chmod at an arbitrary file on the host. The operation is repeatable at will, since crashing a worker forces a relaunch and blob updates re-run the walk, so a failed attempt costs the attacker nothing.

This crosses the boundary that supervisor.run.worker.as.user and container isolation are intended to enforce. It is the same defect class as the Hadoop container-executor issues from which this code derives.

Mitigation

Upgrade to 3.1.0, where the privileged walk operates on file descriptors it has already stat'd rather than on pathnames re-resolved at call time.

Users who cannot upgrade immediately should not run untrusted topology code on supervisors configured with supervisor.run.worker.as.user, since the launcher is the boundary being crossed. Note that the launcher must be rebuilt and reinstalled after upgrading; replacing the Java artifacts alone is not sufficient.

Credit

The ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.

Affected Software

1 affected component
Apache storm<3.1.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Apache Storm to a version that resolves this vulnerability.

    Fixed in 3.1.0Patch CVE-2026-82429
  2. Configuration

    Ensure `supervisor.run.worker.as.user` is not used in a way that permits supervisors to execute untrusted topology code; mitigating guidance states users who cannot upgrade immediately should not run untrusted topology code on supervisors configured with `supervisor.run.worker.as.user`.

    Apache Storm supervisor configuration supervisor.run.worker.as.user = (not specified)
  3. Compensating control

    Do not run untrusted topology code on supervisors configured with `supervisor.run.worker.as.user` until the `worker-launcher` launcher has been upgraded to 3.1.0.

  4. Operational

    After upgrading to Apache Storm 3.1.0, rebuild and reinstall the deployment; replacing only Java artifacts is not sufficient—`worker-launcher` must be rebuilt and reinstalled.

Event History

Sep 14, 2026
CVE Published
via MITRE·02:16 PM
Data Sourced
via MITRE·02:16 PM
DescriptionWeakness

Frequently Asked Questions

1

Who can exploit this issue?

A tenant who can run topology code on a supervisor node is exposed to this privilege boundary failure. The attacker needs control of worker-directory contents that are owned and writable by the untrusted topology user.

2

What does an attacker need to do to exploit it?

They need to replace an intermediate directory component with a symbolic link after the launcher has classified an entry but before its privileged lchown or chmod operation re-resolves the pathname. This can redirect a root-privileged ownership or permission change to an arbitrary host file.

3

Is exploitation limited to a single launch attempt?

No. Crashing a worker forces a relaunch, and blob updates also re-run the directory walk, allowing attempts to be repeated without a failed attempt preventing further exploitation.

4

What should be done if this deployment is affected?

Upgrade to 3.1.0. In that version, the privileged walk operates on file descriptors that were already stat'd instead of re-resolving pathnames for the privileged operations.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203