title: Insecure Default Authorization in Temporal Server
description: 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.
problem types: CWE-863 Incorrect Authorization3 Incorrect Authorization
affected:
{
collectionURL: https://github.com/temporalio
defaultStatus: unaffected
packageName: temporal
product: Temporal Server
programFiles: https://github.com/temporalio/temporal/blob/master/service/frontend/service.go
repo: https://github.com/temporalio/temporal
vendor: Temporal Technologies Inc.
versions:
lessThan: 1.20, status: affected, version: 1.9.1, versionType: semver
}
metrics:
cvssV3_1: [
attackComplexity: HIGH
attackVector: LOCAL
availabilityImpact: LOW
baseScore: 3
baseSeverity: LOW
confidentialityImpact: NONE
integrityImpact: LOW
privilegesRequired: HIGH
scope: UNCHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:L
version: 3.1
]
format: CVSS
scenarios: GENERAL
solutions:   *  Set   frontend.enableTokenNamespaceEnforcement https://github.com/temporalio/temporal/pull/3798  to true
*  Upgrade to version 1.20 or above, where this is the default