CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-5724

CVE-2026-5724: Missing Authentication in Temporal gRPC Streaming Endpoint

Alon Barad
Alon Barad
Software Engineer

Apr 13, 2026·5 min read·103 visits

Executive Summary (TL;DR)

A missing interceptor in Temporal's gRPC streaming configuration allows unauthenticated access to a cross-cluster replication endpoint, enabling potential data exfiltration if the attacker possesses internal cluster routing configurations.

Temporal's go.temporal.io/server package contains a missing authentication vulnerability in its frontend gRPC server. The streaming interceptor chain omits the authorization interceptor, allowing unauthenticated network attackers to access the AdminService/StreamWorkflowReplicationMessages endpoint and potentially exfiltrate workflow replication data.

Vulnerability Overview

Temporal operates a frontend service that handles incoming gRPC requests, routing them to underlying subsystems like the history service. The frontend service enforces authentication and authorization via a ClaimMapper and Authorizer configuration.

This security model relies on gRPC interceptors to validate requests before they reach the designated endpoint handlers. Unary RPCs, which consist of a single request and response, pass through an interceptor chain that correctly invokes the authorization logic.

The vulnerability exists because the streaming RPC interceptor chain omits this critical authorization component. Consequently, streaming endpoints registered on the frontend service process requests without evaluating the client's credentials.

The primary affected component is the AdminService/StreamWorkflowReplicationMessages endpoint. This endpoint facilitates cross-cluster replication and operates on the default WorkflowService port (7233), meaning it shares the same network attack surface as standard client traffic.

Root Cause Analysis

The root cause of CVE-2026-5724 is classified as CWE-306: Missing Authentication for Critical Function. The frontend gRPC server initializes two distinct interceptor chains during startup: one for unary requests and one for streaming requests.

Developers successfully registered the authorization interceptor in the unary chain, ensuring that standard API calls undergo credential validation. However, the streaming chain initialization lacked the corresponding registration call.

When a client initiates a request to a streaming endpoint, the gRPC server routes the connection through the incomplete streaming interceptor chain. The system bypasses the ClaimMapper and Authorizer entirely, proceeding directly to the endpoint handler.

This configuration oversight exclusively affects endpoints utilizing gRPC streaming. Since the replication stream is bound to the primary frontend port and cannot be independently disabled, the unprotected endpoint remains exposed alongside authenticated services.

Code Analysis

The flaw resides in the server initialization phase where the gRPC options are constructed. The vulnerable implementation applies the authorization interceptor to unary requests but neglects the grpc.StreamInterceptor option.

// Conceptual Vulnerable Configuration
serverOpts := []grpc.ServerOption{
    grpc.UnaryInterceptor(
        grpc_middleware.ChainUnaryServer(
            authInterceptor.Unary(), // Authentication enforced here
            // ... other interceptors
        ),
    ),
    grpc.StreamInterceptor(
        grpc_middleware.ChainStreamServer(
            // Missing authInterceptor.Stream()
            // ... other interceptors
        ),
    ),
}

The patched implementation explicitly adds the streaming authorizer to the chain. The developers also introduced a dynamic configuration flag, system.disableStreamingAuthorizer, to allow backward compatibility during complex cluster upgrades.

// Conceptual Patched Configuration
serverOpts := []grpc.ServerOption{
    // ... Unary chain remains unchanged
    grpc.StreamInterceptor(
        grpc_middleware.ChainStreamServer(
            getStreamAuthInterceptor(dynamicConfig), // Authentication enforced here
            // ... other interceptors
        ),
    ),
}

This fix ensures that the gRPC core library evaluates authorization for both request patterns. If the dynamic configuration disables the authorizer, the system explicitly bypasses the check, allowing controlled fallback behavior.

Exploitation Mechanics

Exploitation requires direct network routing to the Temporal frontend service port, typically exposed on TCP port 7233. The attacker initiates a standard gRPC streaming connection targeting the AdminService/StreamWorkflowReplicationMessages RPC method.

Because the streaming interceptor chain lacks the authorization check, the frontend service accepts the connection and forwards the request to the underlying history service. The attacker bypasses the initial access controls entirely.

Data exfiltration is constrained by secondary validation mechanisms within the history service. The backend logic requires valid cluster routing identifiers to process the replication stream.

To successfully extract workflow replication data, the attacker must possess prerequisite knowledge of the target cluster's internal configuration, specifically the cluster IDs and peer membership data. Without this telemetry, the history service will reject the data retrieval attempt, mitigating unauthenticated blind extraction.

Impact Assessment

The vulnerability carries a CVSS v4.0 score of 6.3 (Medium), reflecting the conditional nature of the data exfiltration impact. The attack requires no privileges and leverages low attack complexity, making the network attack surface highly accessible.

Successful exploitation compromises the confidentiality of workflow replication data. This data can contain sensitive business logic, execution state, and payload information traversing the Temporal cluster.

Integrity and availability remain unaffected, as the endpoint exclusively handles outbound replication streams. An attacker cannot inject false workflow state or disrupt existing replication operations through this vector.

The EPSS score of 0.001 (0.10%) indicates a very low probability of active exploitation in the wild. This correlates with the strict prerequisite of internal cluster knowledge, which severely limits the utility of automated scanning and mass exploitation.

Remediation and Mitigation

Temporal addressed CVE-2026-5724 in go.temporal.io/server versions 1.28.4, 1.29.6, and 1.30.4. Administrators must upgrade their clusters to these patched releases to enforce streaming authorization.

Organizations utilizing cross-cluster replication must ensure their automated deployment pipelines provision appropriate credentials for the replication streams before enforcing the new configuration. Failing to update credentials will disrupt active replication.

During the upgrade process, administrators can utilize the system.disableStreamingAuthorizer dynamic configuration parameter. Setting this value to true temporarily reverts the system to the vulnerable state, preventing replication outages while teams coordinate credential rotation.

Security teams should monitor network telemetry for unexpected gRPC connections targeting the AdminService/StreamWorkflowReplicationMessages endpoint. Implement network segmentation to restrict frontend access strictly to authorized clients and peer clusters.

Official Patches

Temporal Technologies, Inc.v1.28.4 Release Notes
Temporal Technologies, Inc.v1.29.6 Release Notes
Temporal Technologies, Inc.v1.30.4 Release Notes

Technical Appendix

CVSS Score
6.3/ 10
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:L/SC:L/SI:N/SA:N/S:N/AU:N/R:U/RE:L
EPSS Probability
0.10%
Top 72% most exploited

Affected Systems

Temporal Server (go.temporal.io/server)Temporal Frontend Service

Affected Versions Detail

Product
Affected Versions
Fixed Version
go.temporal.io/server
Temporal Technologies, Inc.
1.24.0 <= v < 1.28.41.28.4
go.temporal.io/server
Temporal Technologies, Inc.
1.29.0 <= v < 1.29.61.29.6
go.temporal.io/server
Temporal Technologies, Inc.
1.30.0 <= v < 1.30.41.30.4
AttributeDetail
CWE IDCWE-306
Attack VectorNetwork
Authentication RequiredNone
CVSS v4.0 Score6.3 (Medium)
EPSS Score0.10%
Exploit StatusNone
ImpactConditional Data Exfiltration

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
CWE-306
Missing Authentication for Critical Function

The software does not perform any authentication for a functionality that requires a restricted access control.

Vulnerability Timeline

Vulnerability publicly disclosed and CVE-2026-5724 assigned.
2026-04-10
Temporal released patched versions 1.28.4, 1.29.6, and 1.30.4.
2026-04-10
NVD and CVE.org records updated with full technical descriptions.
2026-04-13

References & Sources

  • [1]GitHub Advisory GHSA-q98v-9f9w-f49q
  • [2]NVD CVE-2026-5724 Detail
  • [3]NixOS Issue tracking Temporal update

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•14 minutes ago•GHSA-MF7Q-R4RV-JV94
8.2

GHSA-MF7Q-R4RV-JV94: Time-of-Check to Time-of-Use (TOCTOU) Signature Verification Bypass in Crossplane Runtime

Crossplane's runtime package manager engine contains a Time-of-Check to Time-of-Use (TOCTOU) race condition in its container signature verification pipeline. When Crossplane parses package definitions using dynamic tag-based references, it resolves the tag on the remote OCI registry twice: once during the signature verification step (the 'Check' phase) and once during the fetch and install step (the 'Use' phase). An attacker controlling the destination OCI registry can exploit this vulnerability by serving a validly signed benign image for the verification phase, and then dynamically swapping the tag to point to an unsigned, malicious package during the fetch phase.

Alon Barad
Alon Barad
1 views•7 min read
•about 1 hour ago•CVE-2026-54721
8.8

CVE-2026-54721: Remote Code Execution via Server-Side Template Injection in Silverstripe UserForms

A Server-Side Template Injection (SSTI) vulnerability in the Silverstripe UserForms module allows authenticated CMS users with basic form configuration privileges to achieve remote code execution (RCE). The flaw resides in the processing of the email recipient subject field, where user-supplied template translation tags are evaluated by the template engine, leading to arbitrary PHP execution via dynamic variable interpolation.

Alon Barad
Alon Barad
2 views•5 min read
•about 9 hours ago•CVE-2026-54356
7.1

CVE-2026-54356: Missing Authorization in Budibase leading to Arbitrary S3 Upload URL Generation

CVE-2026-54356 is a missing authorization vulnerability (CWE-862) within the backend component of the Budibase low-code platform. The vulnerability exists inside the `@budibase/server` package in versions prior to 3.41.3. An authenticated user with the lowest privilege level can invoke the attachment upload URL endpoint directly and obtain an S3 pre-signed PutObject URL signed with the server's S3 credentials.

Alon Barad
Alon Barad
7 views•5 min read
•about 10 hours ago•CVE-2026-54556
8.2

CVE-2026-54556: Heap Exhaustion and Denial of Service in http4s Ember HTTP/2 Backend via HPACK Bomb

CVE-2026-54556 is a high-severity Denial of Service (DoS) vulnerability impacting the Ember HTTP/2 backend of http4s, a popular functional Scala interface for HTTP services. The vulnerability arises from an improper handling of highly compressed HPACK header blocks, which enables unauthenticated remote attackers to trigger severe memory amplification and crash the JVM runtime via an OutOfMemoryError.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 11 hours ago•CVE-2026-54553
5.4

CVE-2026-54553: Validation Bypass in starlette-admin REST API via Unvalidated Sort and Filter Fields

A validation bypass vulnerability exists in starlette-admin versions prior to 0.16.1. The administrative REST list API fails to validate user-controlled query parameters against server-side schemas. This allows authenticated users to sort or filter data using fields marked as hidden, non-sortable, or non-searchable. This behavior leads to unauthorized information exposure via blind sorting and denial of service via uncaught database exceptions.

Alon Barad
Alon Barad
4 views•6 min read
•about 12 hours ago•CVE-2026-54548
3.3

CVE-2026-54548: Persistent SSH Host Key Checking Disablement in Siemens kas

Prior to version 5.4, the Siemens kas setup utility unconditionally disabled SSH host key verification globally within the invoking user's persistent `~/.ssh/config` file when utilizing SSH keys. This configuration degradation persists after execution, leaving subsequent user SSH connections vulnerable to Man-in-the-Middle (MitM) attacks.

Amit Schendel
Amit Schendel
8 views•6 min read