CVE-2026-96770
📛 CVE Title
s2s-proxy accepts untrusted client certificates
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.
Overview
- State
- PUBLISHED
- Assigner (CNA)
- Temporal
- CVSS severity
- CRITICAL
- CVSS score
- 9.3 / 10
- CVSS 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- Effective score
- 9.3 / 10 CRITICAL source: CNA overview
- CWE(s)
-
CWE-296 - Reserved
- 2026-09-23
- Published
- 2026-09-23 18:58 UTC
- Last updated
- 2026-09-23 19:36 UTC
- Source
- https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/96xxx/CVE-2026-96770.json
- Linked Threat
- CVE-2026-96770 — s2s-proxy accepts untrusted client certificates
NVD triage scoring NVD CVE 2.0
Layer NVD adds on top of the CNA's CVE record — published / last-modified timestamps, exploitability / impact subscores, and the FIRST.org EPSS probability that this CVE will be exploited in the wild in the next 30 days.
- NVD published
- 2026-09-23 19:19:55 UTC
- NVD last modified
- 2026-09-23 20:17:27 UTC
NVD / KEV / EPSS data refreshed 2026-09-24 04:22 UTC. Re-run the 🛰 Backfill from NVD button above to refresh.
European Union Vulnerability Database ENISA EUVD
ENISA's official EU repository for curated vulnerability intelligence. Carries a separate identifier (EUVD-YYYY-NNNN) and frequently exposes an earlier-published description + CVSS than NVD does.
- EUVD ID
-
EUVD-2026-85567 - Assigner
- Temporal
- Published
- Sep 23, 2026, 6:58:46 PM
- Updated
- Sep 23, 2026, 7:36:12 PM
- EUVD base score (CVSS 4.0)
-
9.3 / 10
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 - EUVD-reported EPSS
- 0.0000
- Vendors
- Temporal Technologies, Inc.
- Products
-
s2s-proxy (0.0.1-alpha ≤0.2.2)
- Aliases
-
GHSA-fhc4-rg5x-86fx
ENISA 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.
EUVD references (5)
- https://github.com/temporalio/s2s-proxy/blob/v0.2.2/encryption/tls.go#L47-L62
- https://github.com/temporalio/s2s-proxy/commit/d100c2258dbc37d7df51298ea045315f36c7eb3b
- https://github.com/temporalio/s2s-proxy/pull/296
- https://github.com/temporalio/s2s-proxy/commit/f1dc6b9a3919d37e82545ab461cbe6bb62618d3c
- https://docs.temporal.io/production-deployment/data-encryption#codec-server-setup
Affected products (1)
| Vendor | Product | Versions | Platforms |
|---|---|---|---|
| Temporal Technologies, Inc. | s2s-proxy |
0.0.1-alpha (affected)
|
— |
Vendor references (5)
References embedded in the original CVE record by the assigning CNA.
Web references (0)
DuckDuckGo results ranked by threat-intel / vendor advisory domains. Generated by the 🔎 Find references (web) button above — same flow as the Remediations search.
No web references attached yet.
NVD-tagged references (5)
Reference list NVD curates from the CNA record, vendor advisories, and third-party reports. The tag chips below are NVD's analyst-assigned categories.
- https://docs.temporal.io/production-deployment/data-encryption#codec-server-setup security@temporal.io
- https://github.com/temporalio/s2s-proxy/blob/v0.2.2/encryption/tls.go#L47-L62 security@temporal.io
- https://github.com/temporalio/s2s-proxy/commit/d100c2258dbc37d7df51298ea045315f36c7eb3b security@temporal.io
- https://github.com/temporalio/s2s-proxy/commit/f1dc6b9a3919d37e82545ab461cbe6bb62618d3c security@temporal.io
- https://github.com/temporalio/s2s-proxy/pull/296 security@temporal.io
Remediations (10)
Remediations are stored against the linked Threat row; the list below is deduplicated across both pages.
-
web:helpx.adobe.com
This page contains important information regarding security vulnerabilities that could affect specific versions of Adobe products. Use this information to take the prescribed corrective actions.
2026-09-24 11:07 UTC -
web:msrc.microsoft.com
The Microsoft Security Response Center (MSRC) investigates all reports of security vulnerabilities affecting Microsoft products and services, and provides the information here as part of the ongoing effort to help you manage security risks and help keep your systems protected.
2026-09-24 11:07 UTC -
web:msrc.microsoft.com
Security Update Guide - Microsoft Security Response Center
2026-09-24 11:07 UTC -
web:sec.cloudapps.cisco.com
To remediate the vulnerabilities that were disclosed on September 2, 2026 , Cisco strongly recommends that customers upgrade to the fixed software that is indicated in the advisories. For more information about changes in Cisco PSIRT vulnerability disclosure, see Strengthening the Foundation: A Predictable, Customer-Focused Response to AI-Accelerated Vulnerability Discovery.
2026-09-24 11:07 UTC -
web:senserva.com
Every Microsoft security patch (KB) and the CVEs it fixes, with severity, CVSS, and CISA KEV status. Cross-linked to the CVE reference.
2026-09-24 11:07 UTC -
web:support.microsoft.com
Be aware that the update in the Microsoft Download Center applies to the Microsoft Installer (.msi)-based edition of Office 2016. It doesn't apply to the Office 2016 Click-to-Run editions, such as Microsoft Office 365 Home. (See What version of Office am I using?) How to get and install the update Method 1: Microsoft Update This update is available from Microsoft Update. When you turn on ...
2026-09-24 11:07 UTC -
web:support.sap.com
SAP security Patch Day Bulletin This post shares the information on security notes that remediate vulnerabilities discovered in SAP products. SAP strongly recommends that the customer visits the support portal and applies patches on priority to protect their SAP landscape. On 9th of June 2026 , SAP security patch day saw the release of 15 new security notes.
2026-09-24 11:07 UTC -
web:www.aikido.dev
CVE remediation is fixing known flaws in the software you run. Why upgrading often fails, what remediation actually involves, and how backporting fixes it.
2026-09-24 11:07 UTC -
web:www.oracle.com
This Critical Patch Update contains 1448 new security patches across the product families listed below. Please note that a My Oracle Support (MOS) note summarizing the content of this Critical Patch Update and other Oracle Software Security Assurance activities is located at July 2026 Critical Patch Update: Executive Summary and Analysis.
2026-09-24 11:07 UTC -
web:zecurit.com
Get the complete breakdown of Microsoft's September 2026 Patch Tuesday. We analyze the latest security updates and all critical CVEs .
2026-09-24 11:07 UTC
AI Forensic Analysis
Only Available for Registered Users. Sign in to view.
Raw JSON
The full cvelistV5 record. Download as CVE-2026-96770.json.
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-96770",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-09-23T19:36:07.279659Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-09-23T19:36:12.488Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"collectionURL": "https://pkg.go.dev",
"defaultStatus": "unaffected",
"packageName": "github.com/temporalio/s2s-proxy",
"product": "s2s-proxy",
"programFiles": [
"encryption/tls.go"
],
"programRoutines": [
{
"name": "GetServerTLSConfig"
}
],
"repo": "https://github.com/temporalio/s2s-proxy",
"vendor": "Temporal Technologies, Inc.",
"versions": [
{
"lessThanOrEqual": "0.2.2",
"status": "affected",
"version": "0.0.1-alpha",
"versionType": "semver"
}
]
}
],
"configurations": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "<p>Exploitation requires network access to an affected TLS server listener configured with skipCAVerification set to false. Available RPCs and namespaces are limited by the proxy's allowlists and the permissions granted to its Temporal credentials.</p>"
}
],
"value": "Exploitation requires network access to an affected TLS server listener configured with skipCAVerification set to false. Available RPCs and namespaces are limited by the proxy's allowlists and the permissions granted to its Temporal credentials."
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Praetorian, who reported this issue responsibly to Temporal Technologies"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "<p>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.</p>"
}
],
"value": "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."
}
],
"impacts": [
{
"descriptions": [
{
"lang": "en",
"value": "An attacker who can reach the listener can connect as a trusted peer with a self-signed certificate and invoke allowed RPCs through the proxy's Temporal credentials. Impact depends on the RPC and namespace allowlists and the permissions granted to those credentials. A permissive deployment can expose workflow data or allow workflow changes and deletion. Data protected by a Payload Codec remains encrypted unless the attacker can also access the customer's Codec Server or encryption keys."
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"exploitMaturity": "NOT_DEFINED",
"privilegesRequired": "NONE",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "HIGH",
"subConfidentialityImpact": "HIGH",
"subIntegrityImpact": "HIGH",
"userInteraction": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-296",
"description": "CWE-296: Improper Following of a Certificate's Chain of Trust",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-23T18:58:46.233Z",
"orgId": "61241ed8-fa44-4f23-92db-b8c443751968",
"shortName": "Temporal"
},
"references": [
{
"name": "Affected TLS server configuration in s2s-proxy 0.2.2",
"tags": [
"product"
],
"url": "https://github.com/temporalio/s2s-proxy/blob/v0.2.2/encryption/tls.go#L47-L62"
},
{
"name": "Change that introduced the affected certificate verification mode",
"tags": [
"product"
],
"url": "https://github.com/temporalio/s2s-proxy/commit/d100c2258dbc37d7df51298ea045315f36c7eb3b"
},
{
"name": "Fix pull request",
"tags": [
"patch"
],
"url": "https://github.com/temporalio/s2s-proxy/pull/296"
},
{
"name": "Fix commit",
"tags": [
"patch"
],
"url": "https://github.com/temporalio/s2s-proxy/commit/f1dc6b9a3919d37e82545ab461cbe6bb62618d3c"
},
{
"name": "Temporal Payload Codec and Codec Server documentation",
"tags": [
"product"
],
"url": "https://docs.temporal.io/production-deployment/data-encryption#codec-server-setup"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "<p>The fix is expected in version 0.2.3. Upgrade to version 0.2.3 or later when available.</p>"
}
],
"value": "The fix is expected in version 0.2.3. Upgrade to version 0.2.3 or later when available."
}
],
"source": {
"discovery": "EXTERNAL"
},
"title": "s2s-proxy accepts untrusted client certificates",
"workarounds": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "<p>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.</p>"
}
],
"value": "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."
}
]
}
},
"cveMetadata": {
"assignerOrgId": "61241ed8-fa44-4f23-92db-b8c443751968",
"assignerShortName": "Temporal",
"cveId": "CVE-2026-96770",
"datePublished": "2026-09-23T18:58:46.233Z",
"dateReserved": "2026-09-23T16:06:36.077Z",
"dateUpdated": "2026-09-23T19:36:12.488Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}