CVE-2026-108126 json
temporal-proxy payload decryption is not bound to the request namespace
published 25d ago modified 24d ago also EUVD-2026-102301
- cvss
- 6.0
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 29%
- public exploits
- 0
- none known
Summary
temporal-proxy 0.2.0 through 0.8.0 does not bind encrypted payloads to the namespace they were encrypted for. When payload encryption is enabled, the proxy chooses the decryption key by an identifier stored in the payload rather than by the namespace of the request, and nothing in the ciphertext records that namespace. A caller whom the proxy authorizes only for namespace B, and who has obtained an encrypted payload from namespace A, can therefore have the proxy decrypt it. In 0.8.0, the caller can submit the payload to the codec server's /decode endpoint. In every affected version, a caller who can also write to namespace B on the Temporal server directly can place the payload there and read it back through the proxy. This holds whether namespaces share the default key or each has its own, because a single proxy holds every key it is configured with. The issue does not give the attacker encrypted payloads they could not already obtain, and does not allow encrypted payloads to be modified.
Patch / fix
- Temporal Technologies, Inc. temporal-proxy 0.9.0
Is CVE-2026-108126 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 25d ago
Exploit prediction
0.36% chance of exploitation in the next 30 days, higher than 29% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.0 | 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 |
| CNA | 4.0 | 6.0 | 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 |
Affected products
- Temporal Technologies, Inc. temporal-proxy
Classification
- Weakness
-
- CWE-639 Authorization Bypass Through User-Controlled Key
References
-
github.com
/temporalio/temporal-proxy/pull/221
patch
-
github.com
/temporalio/temporal-proxy/commit/6843a2c4626aa2c7f00fbf54e4e9fa98f6254f07
patch
-
github.com
/temporalio/temporal-proxy/pull/222
patch
-
github.com
/temporalio/temporal-proxy/commit/508991c298b9ac31915dd7349ffa88d79fad3475
patch
-
github.com
/temporalio/temporal-proxy/blob/v0.8.0/pkg/crypto/vault.go#L256
product
-
github.com
/temporalio/temporal-proxy/blob/v0.8.0/pkg/crypto/kek.go#L172-L180
product
-
github.com
/temporalio/temporal-proxy/blob/v0.8.0/pkg/crypto/dek.go#L54-L67
product
-
github.com
/temporalio/temporal-proxy/discussions/146
technical-description
-
github.com
/temporalio/temporal-proxy/releases/tag/v0.9.0
release-notes
Sources
- CVE List CVE-2026-108126
- NVD CVE-2026-108126
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.