{"api_version":"1","generated_at":"2026-09-14T19:16:33+00:00","cve":"CVE-2026-82429","urls":{"html":"https://cve.report/CVE-2026-82429","api":"https://cve.report/api/cve/CVE-2026-82429.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-82429","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-82429"},"summary":{"title":"Apache Storm Worker Launcher: Local Privilege Escalation to Root via a Time-of-Check Race in the Worker Launcher","description":"Description\n\nThe setuid-root `worker-launcher` binary adjusts ownership and permissions of worker directories by walking\nthe tree with FTS and calling `lchown` and `chmod` on each entry's full pathname while running with an\neffective uid of 0. Both syscalls re-resolve the path at the time of the call, after FTS has classified the\nentry, and the trees being walked are owned and writable by the untrusted topology user.\n\nA tenant running code on a supervisor node could therefore replace an intermediate directory component with\na symbolic link between classification and the privileged operation, redirecting the root-owned `lchown` or\n`chmod` at an arbitrary file on the host. The operation is repeatable at will, since crashing a worker\nforces a relaunch and blob updates re-run the walk, so a failed attempt costs the attacker nothing.\n\nThis crosses the boundary that `supervisor.run.worker.as.user` and container isolation are intended to\nenforce. It is the same defect class as the Hadoop container-executor issues from which this code derives.\n\nMitigation\n\nUpgrade to 3.1.0, where the privileged walk operates on file descriptors it has already stat'd rather than\non pathnames re-resolved at call time.\n\nUsers who cannot upgrade immediately should not run untrusted topology code on supervisors configured with\n`supervisor.run.worker.as.user`, since the launcher is the boundary being crossed. Note that the launcher\nmust be rebuilt and reinstalled after upgrading; replacing the Java artifacts alone is not sufficient.\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-367","CWE-367 CWE-367 Time-of-check time-of-use (TOCTOU) race condition"],"metrics":[],"references":[{"url":"http://www.openwall.com/lists/oss-security/2026/09/13/9","name":"http://www.openwall.com/lists/oss-security/2026/09/13/9","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://lists.apache.org/thread/9vjqrt28g0mxg304vw6pw46cx72v4rvq","name":"https://lists.apache.org/thread/9vjqrt28g0mxg304vw6pw46cx72v4rvq","refsource":"security@apache.org","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-82429","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-82429","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Apache Software Foundation","product":"Apache Storm Worker Launcher","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:44.810Z","orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE"},"references":[{"url":"http://www.openwall.com/lists/oss-security/2026/09/13/9"}],"title":"CVE Program Container"}],"cna":{"affected":[{"collectionURL":"https://repo.maven.apache.org/maven2","defaultStatus":"unaffected","packageName":"org.apache.storm:storm-core","product":"Apache Storm Worker Launcher","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 setuid-root `worker-launcher` binary adjusts ownership and permissions of worker directories by walking<br>the tree with FTS and calling `lchown` and `chmod` on each entry's full pathname while running with an<br>effective uid of 0. Both syscalls re-resolve the path at the time of the call, after FTS has classified the<br>entry, and the trees being walked are owned and writable by the untrusted topology user.<br><br>A tenant running code on a supervisor node could therefore replace an intermediate directory component with<br>a symbolic link between classification and the privileged operation, redirecting the root-owned `lchown` or<br>`chmod` at an arbitrary file on the host. The operation is repeatable at will, since crashing a worker<br>forces a relaunch and blob updates re-run the walk, so a failed attempt costs the attacker nothing.<br><br>This crosses the boundary that `supervisor.run.worker.as.user` and container isolation are intended to<br>enforce. It is the same defect class as the Hadoop container-executor issues from which this code derives.<br><br><b>Mitigation</b><br><br>Upgrade to 3.1.0, where the privileged walk operates on file descriptors it has already stat'd rather than<br>on pathnames re-resolved at call time.<br><br>Users who cannot upgrade immediately should not run untrusted topology code on supervisors configured with<br>`supervisor.run.worker.as.user`, since the launcher is the boundary being crossed. Note that the launcher<br>must be rebuilt and reinstalled after upgrading; replacing the Java artifacts alone is not sufficient.<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 setuid-root `worker-launcher` binary adjusts ownership and permissions of worker directories by walking\nthe tree with FTS and calling `lchown` and `chmod` on each entry's full pathname while running with an\neffective uid of 0. Both syscalls re-resolve the path at the time of the call, after FTS has classified the\nentry, and the trees being walked are owned and writable by the untrusted topology user.\n\nA tenant running code on a supervisor node could therefore replace an intermediate directory component with\na symbolic link between classification and the privileged operation, redirecting the root-owned `lchown` or\n`chmod` at an arbitrary file on the host. The operation is repeatable at will, since crashing a worker\nforces a relaunch and blob updates re-run the walk, so a failed attempt costs the attacker nothing.\n\nThis crosses the boundary that `supervisor.run.worker.as.user` and container isolation are intended to\nenforce. It is the same defect class as the Hadoop container-executor issues from which this code derives.\n\nMitigation\n\nUpgrade to 3.1.0, where the privileged walk operates on file descriptors it has already stat'd rather than\non pathnames re-resolved at call time.\n\nUsers who cannot upgrade immediately should not run untrusted topology code on supervisors configured with\n`supervisor.run.worker.as.user`, since the launcher is the boundary being crossed. Note that the launcher\nmust be rebuilt and reinstalled after upgrading; replacing the Java artifacts alone is not sufficient.\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-367","description":"CWE-367 Time-of-check time-of-use (TOCTOU) race condition","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-09-14T14:16:45.617Z","orgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","shortName":"apache"},"references":[{"tags":["vendor-advisory"],"url":"https://lists.apache.org/thread/9vjqrt28g0mxg304vw6pw46cx72v4rvq"}],"source":{"discovery":"UNKNOWN"},"title":"Apache Storm Worker Launcher: Local Privilege Escalation to Root via a Time-of-Check Race in the Worker Launcher","x_generator":{"engine":"Vulnogram 1.0.3"}}},"cveMetadata":{"assignerOrgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","assignerShortName":"apache","cveId":"CVE-2026-82429","datePublished":"2026-09-14T14:16:45.617Z","dateReserved":"2026-08-29T10:14:24.656Z","dateUpdated":"2026-09-14T15:13:44.810Z","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-367","CWE-367 CWE-367 Time-of-check time-of-use (TOCTOU) race condition"],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"82429","Ordinal":"1","Title":"Apache Storm Worker Launcher: Local Privilege Escalation to Root","CVE":"CVE-2026-82429","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"82429","Ordinal":"1","NoteData":"Description\n\nThe setuid-root `worker-launcher` binary adjusts ownership and permissions of worker directories by walking\nthe tree with FTS and calling `lchown` and `chmod` on each entry's full pathname while running with an\neffective uid of 0. Both syscalls re-resolve the path at the time of the call, after FTS has classified the\nentry, and the trees being walked are owned and writable by the untrusted topology user.\n\nA tenant running code on a supervisor node could therefore replace an intermediate directory component with\na symbolic link between classification and the privileged operation, redirecting the root-owned `lchown` or\n`chmod` at an arbitrary file on the host. The operation is repeatable at will, since crashing a worker\nforces a relaunch and blob updates re-run the walk, so a failed attempt costs the attacker nothing.\n\nThis crosses the boundary that `supervisor.run.worker.as.user` and container isolation are intended to\nenforce. It is the same defect class as the Hadoop container-executor issues from which this code derives.\n\nMitigation\n\nUpgrade to 3.1.0, where the privileged walk operates on file descriptors it has already stat'd rather than\non pathnames re-resolved at call time.\n\nUsers who cannot upgrade immediately should not run untrusted topology code on supervisors configured with\n`supervisor.run.worker.as.user`, since the launcher is the boundary being crossed. Note that the launcher\nmust be rebuilt and reinstalled after upgrading; replacing the Java artifacts alone is not sufficient.\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 Worker Launcher: Local Privilege Escalation to Root"}]}}}