Skip to main content

RA-TLS Clients EUVDEUVD-2026-96019

| CVE-2026-108269 CRITICAL
Origin Validation Error (CWE-346)
2026-10-09 GitHub_M
9.1
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain enclave TLS private key
  2. Delivery
    Relay genuine enclave quote
  3. Exploit
    Present attacker-terminated TLS session
  4. Execution
    Client accepts rogue endpoint as attested enclave
  5. Impact
    Intercept and inject application traffic

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
Exploitation Conditions

Exploitation is gated by three concrete prerequisites, all drawn from the description and commit evidence: (1) the client must be running in CHALLENGE mode - deterministic mode does not use the nonce/session binding and the commit shows deterministic mode ignores the binder, so it is not affected; (2) the deployment must use the Privasys TLS fork that exposes the RA-TLS channel binder - the standard Go build (challenge_std.go) returns a nil binder and cannot even offer challenge mode, so stock builds are out of scope; and (3) the attacker must already hold a valid enclave TLS private key and be positioned to relay a genuine quote onto a separate, attacker-terminated connection. Affected versions are all releases prior to 0.5.0 of privasys/ra-tls-clients (Rust and Go verifiers). The private-key-possession requirement is the dominant limiting factor and is the reason for the CVSS AC:H/AT:P metrics.

Impact

The input CVSS 4.0 base score is 9.1 (Critical), driven by AV:N with VC:H/VI:H (full session confidentiality and integrity loss) - but the same vector carries AC:H and AT:P, signalling high attack complexity and a mandatory attack precondition. That precondition is explicit in the description: the attacker must already possess a genuine enclave TLS private key before any relay is possible, which is a very high bar that sharply lowers real-world likelihood relative to the headline score. No EPSS probability, CISA KEV listing, or POC indicator was supplied in the intelligence set, so there is no evidence of active or probable exploitation - no public exploit identified at time of analysis. Net: this is a legitimately severe attestation-trust bypass (a stolen key lets an attacker impersonate an attested enclave and MITM the application channel), but it is a conditional, targeted risk rather than a mass-exploitation threat. Prioritize urgently only for deployments running the vulnerable client in challenge mode on the Privasys TLS fork; treat it as lower urgency elsewhere. Note: EPSS/KEV/POC signals are absent from the input and cannot be inferred.

Exploit ScenarioDerived

An attacker who has extracted or otherwise obtained an enclave's TLS private key stands up a rogue endpoint and relays a legitimate, still-valid attestation quote - one bound only to the certificate public key and client nonce, not to the live TLS session - to a RA-TLS challenge-mode client. The client accepts the attacker-terminated connection as the genuine attested enclave and begins exchanging application traffic the attacker can read and manipulate. No public exploit identified at time of analysis.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 09, 2026

Session-substitution in Privasys RA-TLS Clients (the Rust ratls_client crate and the Go ratls package, challenge-mode verifiers) prior to 0.5.0 lets an attacker who already possesses an enclave TLS private key relay a genuine attestation quote onto a different, attacker-terminated TLS connection, so the client accepts that connection as coming from the attested enclave. The flaw is an origin/session-binding gap: the quote's ReportData was checked against the certificate public key and the client nonce but never against the live TLS session, allowing a captured quote to be replayed onto an unrelated handshake and granting full session confidentiality and integrity loss (CVSS 4.0 9.1 Critical, VC:H/VI:H, AV:N with PR:N - unauthenticated from the verifier's perspective). Exploitation is gated by the attacker's pre-existing enclave private key and by the deployment running challenge mode on a build that exposes the RA-TLS channel binder; no public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, and the vendor-released patch is version 0.5.0.

RemediationAI

Upgrade to privasys/ra-tls-clients 0.5.0 (tag v0.5.0, https://github.com/Privasys/ra-tls-clients/releases/tag/v0.5.0), which is the vendor-released patch; the corresponding fix is commit b8de9bcadd0f81ca8882d15095fc0d9c50e40148 and the advisory is GHSA-5qrc-v874-mxvx. When upgrading Rust consumers, ensure the Privasys rustls fork is also moved to the pinned privasys-v0.7.0 tag as the fixed Cargo.toml/Cargo.lock require, since the channel binder is only exposed by that fork - leaving the old privasys-v0.3.0 pin in place will cause the new fail-closed check to reject every challenge-mode handshake rather than silently reverting to the vulnerable behaviour. For environments that cannot immediately upgrade, the most defensible compensating control is to stop using challenge mode: deterministic-mode attestation does not bind to the TLS session and was never affected by this bug, but the trade-off is that deterministic mode forgoes freshness/nonce-based replay resistance, so operators must accept a weaker attestation guarantee and ensure the deterministic measurement policy is tightly scoped. Running a stock Go build (challenge_std.go path) also removes exposure because challenge mode is unavailable there, at the cost of losing challenge-mode attestation entirely. Purely network-side filtering is not a reliable mitigation here, because the attacker's traffic is ordinary TLS to the client; the practical control is either the 0.5.0 upgrade plus fork pin, or removal of challenge mode from the deployment. Additional rationale and design detail on binding attestation to the TLS session is published at https://privasys.org/blog/binding-attestation-to-the-tls-session.

Affected VersionsENISA

ra-tls-clients < 0.5.0

Affected Packages

euvd ra_tls_clients fix: 0.5.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Remote Attestation TLS (RA-TLS) embeds a hardware attestation quote - for example an SGX or TDX quote - inside the X.509 certificate presented during the TLS handshake, so a verifying client can check that the peer is genuinely running inside the expected enclave with the expected measurements. The quote carries a ReportData field, and the protocol's security depends on that field committing to everything the client cares about. The Rust and Go verifiers in privasys/ra-tls-clients bound ReportData to the certificate public key and to a client-supplied nonce, but not to the actual TLS session, which is a textbook CWE-346 origin validation error: the verifying code accepted evidence that was valid for *an* attested enclave without proving it was valid for *this* connection. The fix derives a 32-byte RA-TLS channel binder from the TLS 1.3 shared handshake key schedule (exposed by the Privasys rustls fork, bumped from privasys-v0.3.0 to privasys-v0.7.0, and by a Privasys Go fork via ConnectionState().RATLSChannelBinder) and appends it to the nonce when recomputing the expected ReportData; the new VerifyRaTlsCertBound / verify_ratls_cert_bound entry points run post-handshake, and challenge mode now fails closed with 'challenge mode requires the TLS channel binder' if the binder is empty. Notably, deterministic mode deliberately ignores the binder - the commit states deterministic mode is unaffected - and the stock Go build (challenge_std.go) returns a nil binder and cannot offer challenge mode at all, so only challenge-mode deployments on the Privasys TLS fork are in scope. The committed diff touches go/ratls/challenge_ratls.go, go/ratls/challenge_std.go, go/ratls/client.go, rust/src/ratls_client.rs, and the Rust dependency manifests (Cargo.toml, Cargo.lock, rust/mobile/Cargo.lock).

Know when Ra Tls Clients gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.1 CRITICAL
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.4 HIGH

Network relay but requires prior theft of an enclave TLS private key and a challenge-mode deployment, so AC:H; session confidentiality and integrity are compromised, no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 09, 2026 - 23:02 EUVD
CVE Published
Oct 09, 2026 - 21:15 cve.org
CRITICAL 9.1

DescriptionCVE.org

Remote Attestation TLS Clients provides multi-language utilities for verifying attested TLS connections. Prior to 0.5.0, the Rust and Go RA-TLS challenge verifiers accepted quote ReportData that was bound to the certificate public key and client nonce but not to the active TLS session before permitting application traffic. An attacker who obtained an enclave TLS private key could relay a genuine quote onto another connection, causing the clients to accept an attacker-terminated connection as the attested enclave. This issue is fixed in 0.5.0.

Technical POC Analysis

CWE-346 Origin Validation Error.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Privasys RA-TLS clients (Rust ratls_client crate and Go ratls package, challenge-mode verifiers prior to 0.5.0) contain a critical session-substitution flaw that can allow an attacker with a pre-existing enclave TLS private key to impersonate a trusted enclave, causing full loss of confidentiality and integrity for affected sessions. This is unauthenticated from the verifier's perspective, and there is no public exploit identified at time of analysis, but no vendor-released patch identified at time of analysis. Leadership should care because affected attestation channels underpin secure communications and could expose sensitive data or undermine trust in enclave-based workloads.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include disabling challenge-mode verifiers where possible, restricting affected endpoints to trusted networks, rotating enclave TLS private keys, monitoring for session-substitution attempts, and implementing custom validation that binds attestation quotes to the live TLS session until a fixed release is available.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche confidential-computing attestation library; specialized enclave deployments only
Social Media
6
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Very High

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy