# CVE-2026-82436: Apache Storm Client: Deserialization of Untrusted Data from the State Store

Status: published. Published: 2026-11-09. Updated: 2026-11-09.

Description

`DefaultStateSerializer`, used to persist and restore stateful bolt checkpoints, configured Kryo with class
registration disabled and an instantiation strategy that constructs objects without invoking their
constructors, then deserialized whatever bytes the state store returned. A party able to write to the
topology's keyspace in the state store, for example a co-tenant of a shared Redis instance or anyone with
network access to it, could therefore place a serialized object graph that executes code inside the worker
JVM when the state is restored.

This requires the Redis-backed state provider, which is not the default. Write access to a state-store key
is a data-plane privilege; code execution in the worker JVM is not, so the two are not equivalent.

Mitigation

Upgrade to 3.1.0, where the state serializer requires registered classes.

Note that this is a behaviour change for existing state: checkpoints written by an affected version may fail
to restore, and a migration step may be required. Users who cannot upgrade immediately should restrict
network and credential access to the state store to the cluster itself.

Credit

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

## Remediation

No remediation reported in collected sources

## Affected products and versions

- Apache Software Foundation / Apache Storm Client (org.apache.storm:storm-client): ≥ 3.0.0; < 3.1.0 (affected, semver). Source: CNA: apache

## Severity and prioritization

- CISA KEV: No listing in collected sources

- EPSS: Not available

- SSVC: Not available

- Weaknesses: CWE-502

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://lists.apache.org/thread.html/q5vqclkjdvngwkffcbwbwyym410sp8sc (CNA: apache; vendor-advisory)

- http://www.openwall.com/lists/oss-security/2026/11/09/1 (ADP: CVE)

- https://lists.apache.org/thread.html/q5vqclkjdvngwkffcbwbwyym410sp8sc (security@apache.org)

- http://www.openwall.com/lists/oss-security/2026/11/09/1 (af854a3a-2127-422b-91ae-364da2661108)

## Provenance

- CNA: apache: https://www.cve.org/CVERecord?id=CVE-2026-82436; retrieved 2026-11-09; source updated 2026-11-09

- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-82436; retrieved 2026-11-09; source updated 2026-11-09

Revision: 622dc0dc905c5c205166bd06697c7bcc3b36180f43c27c3a3c8c9d41b3b6cdf9

Canonical: https://y2.dev/cve/CVE-2026-82436

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.