You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Security: VMM no_tee flag allows launching VMs without TDX protection #614
Note: This issue documents a vulnerability that was originally reported privately as the repository security advisory GHSA-25qw-5f44-vf8w by @pbeza.
Root Cause
The VMM supports a no_tee=true configuration flag that launches QEMU without the confidential-guest-support=tdx option. When this flag is set, the VM runs as a regular (non-confidential) VM — the host has full access to guest memory. The guest OS has no mechanism to detect that it's running without TDX hardware protection.
Attack Path
Malicious host operator sets no_tee=true in the VMM configuration
VM launches without TDX confidential computing protection
Host operator reads guest memory directly (no hardware isolation)
All keyshares, triples, presignatures, and P2P keys in memory are exposed
Guest OS and MPC node have no way to detect the absence of TDX
Note: TDX attestation would fail since no TDX hardware is present, but if the KMS has quote_enabled=false (F12003), keys are still provisioned
Impact
Complete loss of confidentiality. Without TDX, the host has unrestricted access to all guest memory. This defeats the entire purpose of running MPC nodes in TEEs.
Suggested Fix
Gate no_tee behind a compile-time feature flag that is never enabled in production builds
Inside the guest, verify TDX is active by checking X86_FEATURE_TDX_GUEST CPU feature at application startup
The MPC node should call CPUID to confirm TDX guest mode before processing any key material
Note: This finding was reported automatically as part of an AI/Claude-driven internal audit by the NEAR One MPC team. It has not been manually verified by a human to confirm whether it constitutes an actual security issue.
Maintainer response (copied from private security advisory GHSA-25qw-5f44-vf8w):
Thanks for the report, but this is not a security vulnerability.
no_tee is a development/testing flag that is self-limiting by design.
When no_tee=true is set, the VM runs without TDX hardware protection. However, this means the VM cannot produce valid TDX attestation quotes. Without a valid quote, the CVM cannot:
Authenticate with the KMS (RA-TLS requires a valid quote)
Register with the gateway
Obtain any key material
In other words, a no_tee VM is functionally isolated from all production infrastructure — it cannot participate in the dstack trust chain. There is nothing to compromise because no secrets are ever provisioned to it.
The report's attack path acknowledges this at step 6, noting it only works if the KMS also has quote_enabled=false. Stacking two development-only configurations does not constitute a production vulnerability — it simply means someone is running a local test environment, which is exactly the intended use case.
Activity
kvinwang commentedon Mar 27, 2026
Maintainer response (copied from private security advisory GHSA-25qw-5f44-vf8w):
Thanks for the report, but this is not a security vulnerability.
no_teeis a development/testing flag that is self-limiting by design.When
no_tee=trueis set, the VM runs without TDX hardware protection. However, this means the VM cannot produce valid TDX attestation quotes. Without a valid quote, the CVM cannot:In other words, a
no_teeVM is functionally isolated from all production infrastructure — it cannot participate in the dstack trust chain. There is nothing to compromise because no secrets are ever provisioned to it.The report's attack path acknowledges this at step 6, noting it only works if the KMS also has
quote_enabled=false. Stacking two development-only configurations does not constitute a production vulnerability — it simply means someone is running a local test environment, which is exactly the intended use case.