GHSA-p2gr-hm8g-q772
Temporal has a namespace policy bypass allowing requests to be authorized for incorrect contexts
Quick fix
GHSA-p2gr-hm8g-q772 — go.temporal.io/server: upgrade to the fixed version with the command below.
go get go.temporal.io/server@v1.27.4Details
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.
Are you affected?
Enter the version of the package you're using.
Affected packages
1.24.0Fixed in: 1.27.4go get go.temporal.io/server@v1.27.41.28.0Fixed in: 1.28.2go get go.temporal.io/server@v1.28.21.29.0Fixed in: 1.29.2go get go.temporal.io/server@v1.29.2References
- https://nvd.nist.gov/vuln/detail/CVE-2025-14986[ADVISORY]
- https://github.com/temporalio/temporal/pull/8839[WEB]
- https://github.com/temporalio/temporal[PACKAGE]
- https://github.com/temporalio/temporal/releases/tag/v1.27.4[WEB]
- https://github.com/temporalio/temporal/releases/tag/v1.28.2[WEB]
- https://github.com/temporalio/temporal/releases/tag/v1.29.2[WEB]