Description
All published s2s-proxy versions through 0.2.2 are affected. In versions 0.1.16 through 0.2.2, TLS server listeners use Go's RequireAnyClientCert mode when skipCAVerification is false. This mode checks that the client holds the certificate's private key but does not verify the certificate against the configured CA. An attacker can therefore use a self-signed certificate and key to establish a TLS and yamux connection, then invoke RPCs allowed by the proxy's configuration and Temporal credentials. No certificate or private key trusted by the deployment, and no Temporal credential, is required.
Published: 2026-09-23
Score: 9.3 Critical
EPSS: n/a
KEV: No
Impact: Unauthorized client connection and RPC exploitation via untrusted TLS certificates
Action: Immediate Patch
AI Analysis

Impact

This vulnerability occurs because the s2s‑proxy uses Go's RequireAnyClientCert mode without verifying the certificate against the configured CA. An attacker can supply any self‑signed certificate and its private key and establish a TLS and yamux session. Once connected, the proxy will accept RPCs that the configuration permits, allowing the attacker to perform privileged operations against the Temporal cluster without possessing a valid certificate, credential, or trusted key.

Affected Systems

The Temporal Technologies s2s‑proxy, versions 0.1.16 through 0.2.2, are affected. All published builds up to 0.2.2 contain the flaw. The issue is fixed in version 0.2.3 and later.

Risk and Exploitability

The CVSS score of 9.3 categorizes the issue as critical. Because the defect lies in TLS client authentication, a remote attacker can exploit the weakness without physical access or prior credentials. No knowledge of a Temporal credential or trusted certificate is required, which enlarges the attack surface. The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalog, but the severity and reach of the flaw remain high. Until a patched version is deployed, the risk remains significant, especially if the proxy is exposed beyond a secure network or internal boundary.

Generated by OpenCVE AI on September 23, 2026 at 20:50 UTC.

Remediation

Vendor Solution

The fix is expected in version 0.2.3. Upgrade to version 0.2.3 or later when available.


Vendor Workaround

Restrict the listener to known peer addresses or a private network, or use a TLS terminator that verifies client certificates against the intended CA. These controls reduce exposure but do not fix the proxy defect.


OpenCVE Recommended Actions

  • Upgrade Temporal Technologies s2s‑proxy to version 0.2.3 or later when available.
  • If an upgrade is not yet possible, restrict the proxy listener to known peer addresses or a private network so that only trusted hosts can reach it.
  • Route traffic through a TLS terminator that verifies client certificates against the intended CA, which blocks connections from untrusted certificates.

Generated by OpenCVE AI on September 23, 2026 at 20:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 23 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 23 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
Description All published s2s-proxy versions through 0.2.2 are affected. In versions 0.1.16 through 0.2.2, TLS server listeners use Go's RequireAnyClientCert mode when skipCAVerification is false. This mode checks that the client holds the certificate's private key but does not verify the certificate against the configured CA. An attacker can therefore use a self-signed certificate and key to establish a TLS and yamux connection, then invoke RPCs allowed by the proxy's configuration and Temporal credentials. No certificate or private key trusted by the deployment, and no Temporal credential, is required.
Title s2s-proxy accepts untrusted client certificates
Weaknesses CWE-296
References
Metrics cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: Temporal

Published:

Updated: 2026-09-23T19:36:12.488Z

Reserved: 2026-09-23T16:06:36.077Z

Link: CVE-2026-96770

cve-icon Vulnrichment

Updated: 2026-09-23T19:36:10.230Z

cve-icon NVD

Status : Received

Published: 2026-09-23T19:19:55.013

Modified: 2026-09-23T20:17:27.193

Link: CVE-2026-96770

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-23T21:00:13Z

Weaknesses
  • CWE-296

    Improper Following of a Certificate's Chain of Trust