CVE-2023-3485: Insecure Default Authorization in Temporal Server
Insecure defaults in open-source Temporal Server before version 1.20 on all platforms allows an attacker to craft a task token with access to a namespace other than the one specified in the request. Creation of this task token must be done outside of the normal Temporal server flow. It requires the namespace UUID and information from the workflow history for the target namespace. Under these conditions, it is possible to interfere with pending tasks in other namespaces, such as marking a task failed or completed. If a task is targeted for completion by the attacker, the targeted namespace must also be using the same data converter configuration as the initial, valid, namespace for the task completion payload to be decoded by workers in the target namespace.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/go.temporal.io/serverto a version that resolves this vulnerability.Fixed in 1.20.0 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.20 - Configuration
Set frontend.enableTokenNamespaceEnforcement to true (as referenced by https://github.com/temporalio/temporal/pull/3798).
Temporal Server frontend.enableTokenNamespaceEnforcement = true
Event History
Frequently Asked Questions
What is the severity of CVE-2023-3485?
CVE-2023-3485 is considered a high-severity vulnerability due to its potential to allow unauthorized access to different namespaces.
How do I fix CVE-2023-3485?
To fix CVE-2023-3485, upgrade to Temporal Server version 1.20.0 or later.
What platforms are affected by CVE-2023-3485?
CVE-2023-3485 affects all platforms that run the open-source Temporal Server prior to version 1.20.
What are the implications of CVE-2023-3485?
CVE-2023-3485 allows attackers to create a task token that can access namespaces not intended for their requests.
Is CVE-2023-3485 an issue in Temporal API Go Library?
Yes, CVE-2023-3485 impacts the Temporal API Go Library versions before 1.20.0.