CVE-2025-14987
Authorization Bypass in Temporal Server Cross-Namespace Workflow Commands
Publication date: 2025-12-30
Last updated on: 2025-12-30
Assigner: Temporal Technologies Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| temporal | temporal | * |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-863 | The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability occurs when the Temporal server's setting system.enableCrossNamespaceCommands is enabled (which is the default). It allows certain workflow task commands to target a different namespace than the one authorized at the gRPC boundary. Specifically, the frontend authorizes commands based on the outer request namespace, but the history service executes the command using the namespace specified inside the command attributes without re-checking authorization. This means a worker authorized for one namespace can create, signal, or cancel workflows in another namespace without proper authorization.
How can this vulnerability impact me? :
This vulnerability can allow a worker with authorization for one namespace to perform actions such as creating, signaling, or canceling workflows in a different namespace without proper authorization. This could lead to unauthorized workflow manipulations across namespaces, potentially causing data integrity issues, workflow disruptions, or unauthorized access to workflow operations.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, you should upgrade Temporal to a fixed version: 1.27.4, 1.28.2, or 1.29.2 or later. Alternatively, you can disable the system.enableCrossNamespaceCommands setting if possible, as it is enabled by default and allows cross-namespace commands that lead to this issue.