VDB
Sign up
LOW

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.4

Details

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

Go/go.temporal.io/server
Introduced in: 1.24.0Fixed in: 1.27.4
Fixgo get go.temporal.io/server@v1.27.4
Go/go.temporal.io/server
Introduced in: 1.28.0Fixed in: 1.28.2
Fixgo get go.temporal.io/server@v1.28.2
Go/go.temporal.io/server
Introduced in: 1.29.0Fixed in: 1.29.2
Fixgo get go.temporal.io/server@v1.29.2

References