CVE-2025-14987 json
Cross Namespace Commands Authorization Bypass
published 2025-12-30 10 mo ago modified 2026-06-17 4 mo ago also GHSA-hmhp-gh8m-c8xp , GO-2026-4273 , EUVD-2025-205855
- cvss
- 5.3
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 34%
- public exploits
- 0
- none known
Summary
When system.enableCrossNamespaceCommands is enabled (on by default), the Temporal server permits certain workflow task commands (e.g. StartChildWorkflowExecution, SignalExternalWorkflowExecution, RequestCancelExternalWorkflowExecution) to target a different namespace than the namespace authorized at the gRPC boundary. The frontend authorizes RespondWorkflowTaskCompleted based on the outer request namespace, but the history service later resolves and executes the command using the namespace embedded in command attributes without authorizing the caller for that target namespace. This can allow a worker authorized for one namespace to create, signal, or cancel workflows in another namespace. This issue affects Temporal: through 1.29.1. Fixed in 1.27.4, 1.28.2, 1.29.2.
Patch / fix
- go go.temporal.io/server 1.27.4, 1.28.2, 1.29.0-135.0.0.20251218190115-b292a32bacdf, 1.29.2
- govulncheck-vulndb openSUSE Leap 15.6 0.0.20260114T191543-150000.1.137.1
suse advisories SUSE-SU-2026:0142-1
- govulncheck-vulndb openSUSE Leap 16.0 0.0.20260723T184607-160000.1.1
opensuse advisories openSUSE-SU-2026:21483-1
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 10 mo ago
Exploit prediction
0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.3 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L |
| CNA | 4.0 | 5.3 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | go.temporal.io/server | <1.27.4 >=1.28.0, <1.28.2 >=1.29.0, <1.29.2 >=1.29.0-0, <1.29.0-135.0.0.20251218190115-b292a32bacdf |
1.27.4 1.28.2 1.29.2 1.29.0-135.0.0.20251218190115-b292a32bacdf |
Affected products
- Temporal Temporal
Classification
- Weakness
-
- CWE-863 Incorrect Authorization
References
-
github.com
/temporalio/temporal/commit/b292a32bacdfa6472affd90f0a940408d5839cfa
web
-
github.com
/temporalio/temporal/releases/tag/v1.27.4
web
-
github.com
/temporalio/temporal/releases/tag/v1.28.2
web
-
github.com
/temporalio/temporal/releases/tag/v1.29.2
web
-
nvd.nist.gov
/vuln/detail/CVE-2025-14987
advisory
-
github.com
/temporalio/temporal
package
-
github.com
/advisories/GHSA-hmhp-gh8m-c8xp
advisory
Sources
- CVE List CVE-2025-14987
- GitHub Advisory GHSA-hmhp-gh8m-c8xp
- NVD CVE-2025-14987
- OSV GO-2026-4273
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.