GHSA-p2gr-hm8g-q772
Temporal has a namespace policy bypass allowing requests to be authorized for incorrect contexts
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Go | go.temporal.io/server | >= 1.24.0, < 1.27.4 | 1.27.4 |
| Go | go.temporal.io/server | >= 1.28.0, < 1.28.2 | 1.28.2 |
| Go | go.temporal.io/server | >= 1.29.0, < 1.29.2 | 1.29.2 |
Details
As written in the advisory (Markdown source, shown as plain text).
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.
References
External links from the advisory. They lead to third-party sites.
- https://nvd.nist.gov/vuln/detail/CVE-2025-14986
- https://github.com/temporalio/temporal/pull/8839
- https://github.com/temporalio/temporal
- 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