CVE-2026-108126
temporal-proxy payload decryption is not bound to the request namespace
02 Description
temporal-proxy payload decryption is not bound to the request namespace
03 Exploitation and scoring
- Exploitation
- Assessed, none found. CISA's assessment recorded neither public exploit code nor evidence of exploitation when it was made.
- SSVC decision
- ExploitationnoneCISA recorded no public exploit code and no evidence of exploitation.
- AutomatablenoAt least one step from reconnaissance to exploitation cannot be reliably automated.
- Technical ImpactpartialSuccessful exploitation gives limited control of the vulnerable component.
- EPSS probability
- 0.35% probability of exploitation activity in the next 30 days.
- EPSS percentile
- Equal to or higher than the score of 29.0% of scored records. A rank, not a probability.
- NVD base score
- 6.0 (CVSS v4.0), scored by the NVD independently of the CNA.
- NVD CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- NVD analysis status
- Awaiting Analysis. NVD last modified this record on 2026-10-16.
- Red Hat severity
- No Red Hat rating. Red Hat rates the CVEs that affect its products.
Exploit-prediction scores from FIRST. Independent scoring and analysis status from the NVD. Vendor severity from Red Hat. Exploitation assessment and catalog membership from CISA.
04 Metadata
- Published
- 2026-10-15 19:09Z13 DAYS AGO
- Last updated
- 2026-10-16 15:20Z12 DAYS AGO
- Reserved
- 2026-10-09
- Assigning CNA
- Temporal
- Record state
- PUBLISHED
- Severity
- Medium (CVSS 6.0)
- CNA CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
- Weaknesses
- CWE-639Authorization Bypass Through User-Controlled KeyBase
- Data version
- 5.2
- Document digest
- 5d296fcdc8e34d205d509d68b8017552fdc9308f5e8ee9cb7a93b6f3330329ef
05 Affected products
06 References
- github.comVault.Open in temporal-proxy 0.8.0, which takes no namespacehttps://github.com/temporalio/temporal-proxy/blob/v0.8.0/pkg/crypto/vault.go#L256
- github.comKEKRegistry.Decrypt in temporal-proxy 0.8.0, which selects the KEK by the identifier in the payloadhttps://github.com/temporalio/temporal-proxy/blob/v0.8.0/pkg/crypto/kek.go#L172-L180
- github.comAES-256-GCM sealed and opened with no associated data in temporal-proxy 0.8.0https://github.com/temporalio/temporal-proxy/blob/v0.8.0/pkg/crypto/dek.go#L54-L67
- github.comDesign discussion of associated data in the payload encryption schemehttps://github.com/temporalio/temporal-proxy/discussions/146
- github.comFix pull requesthttps://github.com/temporalio/temporal-proxy/pull/221
- github.comFix commithttps://github.com/temporalio/temporal-proxy/commit/6843a2c4626aa2c7f00fbf54e4e9fa98f6254f07
- github.comCodec server fix pull requesthttps://github.com/temporalio/temporal-proxy/pull/222
- github.comCodec server fix commithttps://github.com/temporalio/temporal-proxy/commit/508991c298b9ac31915dd7349ffa88d79fad3475
- github.comtemporal-proxy 0.9.0https://github.com/temporalio/temporal-proxy/releases/tag/v0.9.0
07 Remediation
Upgrade to temporal-proxy 0.9.0 or later and set encryption.namespaceBinding to strict. Fixed releases record the namespace in each payload they encrypt and, in strict mode, refuse to decrypt a payload recorded for another namespace or for none, including through the codec server's /decode endpoint, which then requires the caller to name a namespace. The setting has no default and must be set whenever encryption keys are configured. The off and permissive modes exist to migrate payloads encrypted by earlier releases, which carry no namespace, and do not close this issue; move to strict once the vault_unbound_opens_total and vault_namespace_mismatches_total metrics have stayed at zero for longer than namespace retention. Payloads carried in Nexus operations are not compared, because they cross namespaces by design.