CVE-2025-14986
Temporal has a namespace policy bypass allowing requests to be authorized for incorrect contexts
Impact
When frontend.enableExecuteMultiOperation is enabled, the server can apply namespace-scoped validation and feature gates for the embedded StartWorkflowExecutionRequest using its Namespace field rather than the outer, authorized ExecuteMultiOperationRequest.Namespace. This allows a caller authorized for one namespace to bypass that namespace's limits/policies by setting the embedded start request's namespace to a different namespace. The workflow is still created in the outer (authorized) namespace; only validation/gating is performed under the wrong namespace context. This issue affects Temporal: from 1.24.0 through 1.29.1. Fixed in 1.27.4, 1.28.2, 1.29.2.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| go | go.temporal.io/server | >= 1.24.0, < 1.27.4 | 1.27.4 |
Affected products
| Product | Affected versions |
|---|---|
| Temporal: From 1.24.0 | through 1.29.1. |
Versions were read from the advisory text. No structured product data has been published for this record yet.
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/temporalio/temporal/releases/tag/v1.27.4
- https://github.com/temporalio/temporal/releases/tag/v1.28.2
- https://github.com/temporalio/temporal/releases/tag/v1.29.2
- https://github.com/advisories/GHSA-p2gr-hm8g-q772
- https://nvd.nist.gov/vuln/detail/CVE-2025-14986
- https://github.com/temporalio/temporal/pull/8839