CVE-2026-82433 (GCVE-0-2026-82433)
Vulnerability from cvelistv5 – Published: 2026-09-14 14:12 – Updated: 2026-09-14 20:02
VLAI
EPSS
VEX
Title
Apache Storm Nimbus, Apache Storm UI: Disclosure of Unredacted Daemon Configuration via Nimbus and the UI
Summary
Description
`getNimbusConf` returned the complete daemon configuration without redaction after only a user-level
authorization check. Where the cluster is configured with them, that response includes
`storm.zookeeper.auth.payload` and the keystore and truststore passwords for the Thrift, Netty and
ZooKeeper TLS configuration. The project masks passwords elsewhere before display, so the omission here is
inconsistent rather than intended.
The UI endpoint `/api/v1/cluster/configuration` compounded this. It carried no `@AuthNimbusOp` annotation,
and the authorization filter treated a missing annotation as "no gate required" and returned immediately, so
the endpoint applied no per-user check at all and proxied the request under the UI daemon's own principal.
Any user able to pass `ui.filter` therefore received the full configuration, including principals that
Nimbus itself would have refused.
Mitigation
Upgrade to 3.1.0, where credential-bearing values are masked before the configuration is served and where
every UI API endpoint must declare its authorization explicitly.
Users who cannot upgrade immediately should place the UI behind an authenticating reverse proxy that
restricts `/api/v1/cluster/configuration`, and should rotate the ZooKeeper authentication payload and any
TLS keystore or truststore passwords that were reachable through it.
Credit
The ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.
Severity
6.5 (Medium)
SSVC
Exploitation: none
Automatable: no
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-14 20:02 UTC
Assigner
References
2 references
| URL | Tags |
|---|---|
| https://lists.apache.org/thread/ohw4s30rhm2r20498… | vendor-advisory |
| http://www.openwall.com/lists/oss-security/2026/0… |
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Apache Software Foundation | Apache Storm Nimbus |
Affected:
3.0.0 , < 3.1.0
(semver)
|
guessed | |
| Apache Software Foundation | Apache Storm UI |
Affected:
3.0.0 , < 3.1.0
(semver)
|
guessed |
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2026-09-14T14:13:29.105Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"url": "http://www.openwall.com/lists/oss-security/2026/09/13/13"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 6.5,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
}
},
{
"other": {
"content": {
"id": "CVE-2026-82433",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-09-14T20:02:22.340077Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-09-14T20:02:43.408Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "org.apache.storm:storm-server",
"product": "Apache Storm Nimbus",
"vendor": "Apache Software Foundation",
"versions": [
{
"lessThan": "3.1.0",
"status": "affected",
"version": "3.0.0",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "org.apache.storm:storm-webapp",
"product": "Apache Storm UI",
"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": "\u003cb\u003eDescription\u003c/b\u003e\u003cbr\u003e\u003cbr\u003e`getNimbusConf` returned the complete daemon configuration without redaction after only a user-level\u003cbr\u003eauthorization check. Where the cluster is configured with them, that response includes\u003cbr\u003e`storm.zookeeper.auth.payload` and the keystore and truststore passwords for the Thrift, Netty and\u003cbr\u003eZooKeeper TLS configuration. The project masks passwords elsewhere before display, so the omission here is\u003cbr\u003einconsistent rather than intended.\u003cbr\u003e\u003cbr\u003eThe UI endpoint `/api/v1/cluster/configuration` compounded this. It carried no `@AuthNimbusOp` annotation,\u003cbr\u003eand the authorization filter treated a missing annotation as \"no gate required\" and returned immediately, so\u003cbr\u003ethe endpoint applied no per-user check at all and proxied the request under the UI daemon\u0027s own principal.\u003cbr\u003eAny user able to pass `ui.filter` therefore received the full configuration, including principals that\u003cbr\u003eNimbus itself would have refused.\u0026nbsp;\u003cbr\u003e\u003cbr\u003e\u003cb\u003eMitigation\u003c/b\u003e\u003cbr\u003e\u003cbr\u003eUpgrade to 3.1.0, where credential-bearing values are masked before the configuration is served and where\u003cbr\u003eevery UI API endpoint must declare its authorization explicitly.\u003cbr\u003e\u003cbr\u003eUsers who cannot upgrade immediately should place the UI behind an authenticating reverse proxy that\u003cbr\u003erestricts `/api/v1/cluster/configuration`, and should rotate the ZooKeeper authentication payload and any\u003cbr\u003eTLS keystore or truststore passwords that were reachable through it.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eCredit\u003c/b\u003e\u003cbr\u003e\u003cbr\u003eThe ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.\u003cbr\u003e"
}
],
"value": "Description\n\n`getNimbusConf` returned the complete daemon configuration without redaction after only a user-level\nauthorization check. Where the cluster is configured with them, that response includes\n`storm.zookeeper.auth.payload` and the keystore and truststore passwords for the Thrift, Netty and\nZooKeeper TLS configuration. The project masks passwords elsewhere before display, so the omission here is\ninconsistent rather than intended.\n\nThe UI endpoint `/api/v1/cluster/configuration` compounded this. It carried no `@AuthNimbusOp` annotation,\nand the authorization filter treated a missing annotation as \"no gate required\" and returned immediately, so\nthe endpoint applied no per-user check at all and proxied the request under the UI daemon\u0027s own principal.\nAny user able to pass `ui.filter` therefore received the full configuration, including principals that\nNimbus itself would have refused.\u00a0\n\nMitigation\n\nUpgrade to 3.1.0, where credential-bearing values are masked before the configuration is served and where\nevery UI API endpoint must declare its authorization explicitly.\n\nUsers who cannot upgrade immediately should place the UI behind an authenticating reverse proxy that\nrestricts `/api/v1/cluster/configuration`, and should rotate the ZooKeeper authentication payload and any\nTLS keystore or truststore passwords that were reachable through it.\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": "moderate"
},
"type": "Textual description of severity"
},
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-522",
"description": "CWE-522: Insufficiently Protected Credentials",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-862",
"description": "CWE-862: Missing Authorization",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-14T14:12:23.796Z",
"orgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
"shortName": "apache"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://lists.apache.org/thread/ohw4s30rhm2r20498c0zbqxyy7xd5hxl"
}
],
"source": {
"discovery": "UNKNOWN"
},
"title": "Apache Storm Nimbus, Apache Storm UI: Disclosure of Unredacted Daemon Configuration via Nimbus and the UI",
"x_generator": {
"engine": "Vulnogram 1.0.3"
}
}
},
"cveMetadata": {
"assignerOrgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
"assignerShortName": "apache",
"cveId": "CVE-2026-82433",
"datePublished": "2026-09-14T14:12:23.796Z",
"dateReserved": "2026-08-29T10:25:15.578Z",
"dateUpdated": "2026-09-14T20:02:43.408Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-82433\",\"sourceIdentifier\":\"security@apache.org\",\"published\":\"2026-09-14T15:17:10.323\",\"lastModified\":\"2026-09-14T20:58:48.430\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Description\\n\\n`getNimbusConf` returned the complete daemon configuration without redaction after only a user-level\\nauthorization check. Where the cluster is configured with them, that response includes\\n`storm.zookeeper.auth.payload` and the keystore and truststore passwords for the Thrift, Netty and\\nZooKeeper TLS configuration. The project masks passwords elsewhere before display, so the omission here is\\ninconsistent rather than intended.\\n\\nThe UI endpoint `/api/v1/cluster/configuration` compounded this. It carried no `@AuthNimbusOp` annotation,\\nand the authorization filter treated a missing annotation as \\\"no gate required\\\" and returned immediately, so\\nthe endpoint applied no per-user check at all and proxied the request under the UI daemon\u0027s own principal.\\nAny user able to pass `ui.filter` therefore received the full configuration, including principals that\\nNimbus itself would have refused.\u00a0\\n\\nMitigation\\n\\nUpgrade to 3.1.0, where credential-bearing values are masked before the configuration is served and where\\nevery UI API endpoint must declare its authorization explicitly.\\n\\nUsers who cannot upgrade immediately should place the UI behind an authenticating reverse proxy that\\nrestricts `/api/v1/cluster/configuration`, and should rotate the ZooKeeper authentication payload and any\\nTLS keystore or truststore passwords that were reachable through it.\\n\\nCredit\\n\\nThe ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.\"}],\"affected\":[{\"source\":\"security@apache.org\",\"affectedData\":[{\"vendor\":\"Apache Software Foundation\",\"product\":\"Apache Storm Nimbus\",\"defaultStatus\":\"unaffected\",\"collectionURL\":\"https://repo.maven.apache.org/maven2\",\"packageName\":\"org.apache.storm:storm-server\",\"versions\":[{\"version\":\"3.0.0\",\"lessThan\":\"3.1.0\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Apache Software Foundation\",\"product\":\"Apache Storm UI\",\"defaultStatus\":\"unaffected\",\"collectionURL\":\"https://repo.maven.apache.org/maven2\",\"packageName\":\"org.apache.storm:storm-webapp\",\"versions\":[{\"version\":\"3.0.0\",\"lessThan\":\"3.1.0\",\"versionType\":\"semver\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N\",\"baseScore\":6.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":2.8,\"impactScore\":3.6}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-09-14T20:02:22.340077Z\",\"id\":\"CVE-2026-82433\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"security@apache.org\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-522\"},{\"lang\":\"en\",\"value\":\"CWE-862\"}]}],\"references\":[{\"url\":\"https://lists.apache.org/thread/ohw4s30rhm2r20498c0zbqxyy7xd5hxl\",\"source\":\"security@apache.org\"},{\"url\":\"http://www.openwall.com/lists/oss-security/2026/09/13/13\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"}]}}",
"vulnrichment": {
"containers": "{\"cna\": {\"providerMetadata\": {\"orgId\": \"f0158376-9dc2-43b6-827c-5f631a4d8d09\", \"shortName\": \"apache\", \"dateUpdated\": \"2026-09-14T14:12:23.796Z\"}, \"title\": \"Apache Storm Nimbus, Apache Storm UI: Disclosure of Unredacted Daemon Configuration via Nimbus and the UI\", \"problemTypes\": [{\"descriptions\": [{\"description\": \"CWE-522: Insufficiently Protected Credentials\", \"lang\": \"en\", \"cweId\": \"CWE-522\", \"type\": \"CWE\"}]}, {\"descriptions\": [{\"description\": \"CWE-862: Missing Authorization\", \"lang\": \"en\", \"cweId\": \"CWE-862\", \"type\": \"CWE\"}]}], \"source\": {\"discovery\": \"UNKNOWN\"}, \"affected\": [{\"vendor\": \"Apache Software Foundation\", \"product\": \"Apache Storm Nimbus\", \"collectionURL\": \"https://repo.maven.apache.org/maven2\", \"packageName\": \"org.apache.storm:storm-server\", \"versions\": [{\"status\": \"affected\", \"version\": \"3.0.0\", \"lessThan\": \"3.1.0\", \"versionType\": \"semver\"}], \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"Apache Software Foundation\", \"product\": \"Apache Storm UI\", \"collectionURL\": \"https://repo.maven.apache.org/maven2\", \"packageName\": \"org.apache.storm:storm-webapp\", \"versions\": [{\"status\": \"affected\", \"version\": \"3.0.0\", \"lessThan\": \"3.1.0\", \"versionType\": \"semver\"}], \"defaultStatus\": \"unaffected\"}], \"descriptions\": [{\"value\": \"Description\\n\\n`getNimbusConf` returned the complete daemon configuration without redaction after only a user-level\\nauthorization check. Where the cluster is configured with them, that response includes\\n`storm.zookeeper.auth.payload` and the keystore and truststore passwords for the Thrift, Netty and\\nZooKeeper TLS configuration. The project masks passwords elsewhere before display, so the omission here is\\ninconsistent rather than intended.\\n\\nThe UI endpoint `/api/v1/cluster/configuration` compounded this. It carried no `@AuthNimbusOp` annotation,\\nand the authorization filter treated a missing annotation as \\\"no gate required\\\" and returned immediately, so\\nthe endpoint applied no per-user check at all and proxied the request under the UI daemon\u0027s own principal.\\nAny user able to pass `ui.filter` therefore received the full configuration, including principals that\\nNimbus itself would have refused.\\u00a0\\n\\nMitigation\\n\\nUpgrade to 3.1.0, where credential-bearing values are masked before the configuration is served and where\\nevery UI API endpoint must declare its authorization explicitly.\\n\\nUsers who cannot upgrade immediately should place the UI behind an authenticating reverse proxy that\\nrestricts `/api/v1/cluster/configuration`, and should rotate the ZooKeeper authentication payload and any\\nTLS keystore or truststore passwords that were reachable through it.\\n\\nCredit\\n\\nThe ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.\", \"lang\": \"en\", \"supportingMedia\": [{\"type\": \"text/html\", \"base64\": false, \"value\": \"\u003cb\u003eDescription\u003c/b\u003e\u003cbr\u003e\u003cbr\u003e`getNimbusConf` returned the complete daemon configuration without redaction after only a user-level\u003cbr\u003eauthorization check. Where the cluster is configured with them, that response includes\u003cbr\u003e`storm.zookeeper.auth.payload` and the keystore and truststore passwords for the Thrift, Netty and\u003cbr\u003eZooKeeper TLS configuration. The project masks passwords elsewhere before display, so the omission here is\u003cbr\u003einconsistent rather than intended.\u003cbr\u003e\u003cbr\u003eThe UI endpoint `/api/v1/cluster/configuration` compounded this. It carried no `@AuthNimbusOp` annotation,\u003cbr\u003eand the authorization filter treated a missing annotation as \\\"no gate required\\\" and returned immediately, so\u003cbr\u003ethe endpoint applied no per-user check at all and proxied the request under the UI daemon\u0027s own principal.\u003cbr\u003eAny user able to pass `ui.filter` therefore received the full configuration, including principals that\u003cbr\u003eNimbus itself would have refused.\u0026nbsp;\u003cbr\u003e\u003cbr\u003e\u003cb\u003eMitigation\u003c/b\u003e\u003cbr\u003e\u003cbr\u003eUpgrade to 3.1.0, where credential-bearing values are masked before the configuration is served and where\u003cbr\u003eevery UI API endpoint must declare its authorization explicitly.\u003cbr\u003e\u003cbr\u003eUsers who cannot upgrade immediately should place the UI behind an authenticating reverse proxy that\u003cbr\u003erestricts `/api/v1/cluster/configuration`, and should rotate the ZooKeeper authentication payload and any\u003cbr\u003eTLS keystore or truststore passwords that were reachable through it.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eCredit\u003c/b\u003e\u003cbr\u003e\u003cbr\u003eThe ASF -- found using Claude agents to study the security of open-source projects, validated and reported by Apache Storm.\u003cbr\u003e\"}]}], \"references\": [{\"url\": \"https://lists.apache.org/thread/ohw4s30rhm2r20498c0zbqxyy7xd5hxl\", \"tags\": [\"vendor-advisory\"]}], \"metrics\": [{\"other\": {\"type\": \"Textual description of severity\", \"content\": {\"text\": \"moderate\"}}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"credits\": [{\"lang\": \"en\", \"value\": \"The ASF using Claude Agents\", \"type\": \"finder\"}], \"x_generator\": {\"engine\": \"Vulnogram 1.0.3\"}}, \"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"http://www.openwall.com/lists/oss-security/2026/09/13/13\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2026-09-14T14:13:29.105Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 6.5, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N\", \"integrityImpact\": \"NONE\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-82433\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-09-14T20:02:22.340077Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-09-14T20:02:40.048Z\"}}]}",
"cveMetadata": "{\"cveId\": \"CVE-2026-82433\", \"assignerOrgId\": \"f0158376-9dc2-43b6-827c-5f631a4d8d09\", \"state\": \"PUBLISHED\", \"assignerShortName\": \"apache\", \"dateReserved\": \"2026-08-29T10:25:15.578Z\", \"datePublished\": \"2026-09-14T14:12:23.796Z\", \"dateUpdated\": \"2026-09-14T20:02:43.408Z\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…