CVE-2026-89140 json
Temporal Server internal completion callbacks are not bound to their namespace, allowing cross-namespace changes to Scheduler V2 schedule state
published 2026-10-12 27 d ago modified 2026-10-16 23 d ago also EUVD-2026-97769
- cvss
- 6.0
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 26%
- public exploits
- 0
- none known
Summary
Temporal Server does not bind internal completion callbacks to the namespace that attached them, which allows an authenticated caller with write permission in one namespace to alter Scheduler V2 schedule state in another namespace. The callback address temporal://internal is reserved for callbacks that Scheduler V2 attaches to the Workflows it starts. In affected releases, any authenticated caller could attach a callback with that address to a Workflow start request, the address was exempt from the component.callbacks.allowedAddresses allowlist, and the History service delivered the callback to the component its token named, in whatever namespace that was, without authorizing the original caller there. When the forged completion matches an action a target schedule is running, the schedule records the action as completed while its Workflow still runs, which can defeat an overlap policy such as SKIP, and passes caller-controlled data to the next scheduled Workflow as its last completion result. A forged failure may also pause a schedule configured to pause on failure. A forgery requires the target namespace identifier, the schedule identifier, and the identity and timing of a running action. No disclosure of Workflow payloads or history was identified. Only namespaces that hold Scheduler V2 schedules can be targeted; Scheduler V2 is off by default, and existing Scheduler V2 schedules remain targets after the settings that create them are turned off.
Patch / fix
- Temporal Technologies, Inc. Temporal Server 1.30.8, 1.31.4, 1.32.1
- github.com/temporalio/temporal@a210eeb commit
- github.com/temporalio/temporal@d0bd72e commit
- github.com/temporalio/temporal#11876 pull request
- github.com/temporalio/temporal#12318 pull request
- github.com/temporalio/temporal#12319 pull request
- github.com/temporalio/temporal#12382 pull request
- github.com/temporalio/temporal#12320 pull request
- github.com/temporalio/temporal/releases/tag/v1.30.8 release
- github.com/temporalio/temporal/releases/tag/v1.31.4 release
- github.com/temporalio/temporal/releases/tag/v1.32.1 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-89140 updated cvss 5.9
go.temporal.io/server: Temporal Server: Unauthorized cross-namespace schedule modification via forged internal callbacks
-
Red Hat Ansible Automation Orchestrator 2026 ansible-automation-platform/automation-orchestrator-temporal-rhel9affected: no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 23 d ago
Exploit prediction
0.33% chance of exploitation in the next 30 days, higher than 26% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.0 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 6.0 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/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 products
- Temporal Technologies, Inc. Temporal Server
Classification
- Weakness
-
- CWE-639 Authorization Bypass Through User-Controlled Key
References
-
github.com
/temporalio/temporal/pull/11876
patch
-
github.com
/temporalio/temporal/commit/a210eeb8c2cc7e22338bb4f552ff1171d8f35969
patch
-
github.com
/temporalio/temporal/pull/12318
patch
-
github.com
/temporalio/temporal/pull/12319
patch
-
github.com
/temporalio/temporal/pull/12382
patch
-
github.com
/temporalio/temporal/pull/12320
patch
-
github.com
/temporalio/temporal/commit/d0bd72e85014f31ecfbada1b436b08806496dbef
patch
-
github.com
/temporalio/temporal/releases/tag/v1.30.8
release-notes
-
github.com
/temporalio/temporal/releases/tag/v1.31.4
release-notes
-
github.com
/temporalio/temporal/releases/tag/v1.32.1
release-notes
Sources
- CVE List CVE-2026-89140
- NVD CVE-2026-89140
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.