Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain enclave TLS private key
-
DeliveryRelay genuine enclave quote
-
ExploitPresent attacker-terminated TLS session
-
ExecutionClient accepts rogue endpoint as attested enclave
-
ImpactIntercept 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Ra Tls Clients
View allPrivasys ra-tls-clients verifiers before 0.11.0 accept TEE attestation evidence without binding it to an explicitly auth
Time-of-check/time-of-use weakness in Privasys ra-tls-clients before 0.9.1 allows a local, low-privileged attacker on th
EUVD-2026-96019
NVD
CVE.org
EPSS
GitHub
Exploit-DB