
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-87858 is an authorization bypass vulnerability in Temporal Server (go.temporal.io/server) that allows an authenticated attacker with write permission in a single namespace to perform administrative API operations across other namespaces by forging a caller-supplied HTTP header. The vulnerability was published on September 21, 2026, and affects versions 1.25.0–1.29.7, 1.30.0–1.30.6, and 1.31.0–1.31.2. It carries a CVSS v4.0 base score of 7.2 (High) (GitHub Advisory).
The root cause is CWE-807 (Reliance on Untrusted Inputs in a Security Decision): Temporal Server determined whether a Workflow completion callback was internal by inspecting a caller-supplied HTTP header named source, rather than using a server-controlled signal (GitHub Advisory). An attacker attaches a completion callback whose URL host matches the configured callback address allowlist and whose URL path targets any Temporal HTTP API route, then includes a non-empty source header. When the History service delivers the callback, the non-empty source header causes the request to be re-targeted at the local internal frontend client, rewriting only the scheme and host while preserving the attacker's chosen path, query, and request body. The internal frontend authorizes all such requests as a system administrator without requiring authentication credentials, effectively granting the attacker full administrative access. The flaw exists in both the HSM and CHASM callback delivery implementations; in versions 1.25.0–1.29.7, the header must exactly match a configured cluster UUID (making exploitation harder), while in 1.30.0+, any non-empty source header value is sufficient (GitHub Advisory, PR #11965).
A successful exploit allows an authenticated attacker with only single-namespace write permission to execute arbitrary administrative HTTP POST operations against the Temporal server's internal API as a system administrator, without needing direct network access to the internal frontend. Confirmed impacts include terminating Workflows in other namespaces, registering new namespaces, modifying namespace configurations, and deleting namespaces along with all their Workflows (GitHub Advisory). The vulnerability primarily affects integrity and availability (no confidentiality impact is indicated), and can result in significant disruption to multi-tenant Temporal deployments where namespace isolation is a security boundary.
No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at the time of disclosure (GitHub Advisory). The NVD SSVC assessment rates exploitation as "none" and the vulnerability as non-automatable. Exploitation requires an authenticated account with at least write permission to one namespace, and the deployment must have an internal frontend with a non-zero HTTP port and at least one allowlist rule permitting external callback URLs — conditions that are not present in default Temporal deployments. No threat actor attribution or CISA KEV catalog listing has been identified.
services.internal-frontend.rpc.httpPort set to a non-zero value) and at least one entry in the component.callbacks.allowedAddresses dynamic configuration.source header: Include a non-empty HTTP header named source in the callback's header map. In versions 1.30.0+, any non-empty value is sufficient; in versions 1.25.0–1.29.7, the value must match the cluster UUID.DescribeWorkflowExecution on Workflows to inspect registered completion callbacks; unexpected callback URLs targeting internal Temporal API routes with allowlisted hosts are a strong indicator of abuse.Upgrade to patched versions: v1.30.7, v1.31.3, or v1.32.0 (v1.30.7 Release, v1.31.3 Release, v1.32.0 Release). The fix makes source header inspection opt-in via the callback.inspectSourceHeader configuration flag (defaulting to false in 1.32.0+), so that URL-scheme routing is used by default instead of trusting the caller-supplied header. As an immediate workaround, restrict or disable the internal frontend HTTP API (set services.internal-frontend.rpc.httpPort to zero) and ensure the component.callbacks.allowedAddresses allowlist is empty if callback functionality is not required. Operators should also audit existing Workflows using DescribeWorkflowExecution to check for suspicious completion callbacks already attached (GitHub Advisory, PR #11965).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."