Skip to content

deps: bump dcap-qvl to 0.7.0 - #1498

Merged
kvinwang merged 1 commit into
nextfrom
deps/dcap-qvl-0.7
Oct 28, 2026
Merged

kvinwang merged 1 commit into
nextfrom
deps/dcap-qvl-0.7

Conversation

@kvinwang

Copy link
Copy Markdown
Collaborator

Fixes #1462.

dcap-qvl 0.5.3 compares all 16 bytes of TEE_TCB_SVN against the platform TCB levels, so hosts whose TDX module SVN is below the levels' byte 0 (e.g. Granite Rapids with an older TDX module 2.0) fail with No matching TCB level found. 0.7.0 matches the platform on TEE_TCB_SVN[2..] and appraises the module through tdxModuleIdentities, like Intel's QVL.

Code changes:

  • local-key-provider: TDAttributes was reworked in 0.7.0; require_production_td now checks the raw TD_ATTRIBUTES against the same allowed bits as before (SEPT_VE_DISABLE, PKS, KL, PERFMON). The policy is unchanged.
  • dstack-attest::validate_tcb: handle the new Report::TD15Ex (quote v5 body type 4) like TD 1.5, as dcap-qvl does.

Behavior changes from dcap-qvl (0.5.3..0.7.0), all aligning with Intel's QVL:

  • QE / TDX module status only changes the platform status when it is OutOfDate or Revoked (e.g. a QE at ConfigurationNeeded no longer downgrades an UpToDate platform).
  • TD 1.5: TEE_TCB_SVN2 is now appraised too; a TD launched out of date but running an up-to-date TCB reports TDRelaunchAdvised instead of OutOfDate. UpToDate-only allowlists (the KMS contracts, auth-simple default) are unaffected.
  • With a non-zero module version, the TCB info must contain the matching TDX_XX module identity.
  • TD 1.5ex quotes, previously rejected as unsupported, are accepted.

Collateral and VerifiedReport formats are unchanged. Upgrading changes the local key provider enclave's MRENCLAVE.

Tested: cargo test --all-features --workspace, clippy; a quote from a Granite Rapids B200 host (FMSPC 00A06D080000) verifies UpToDate with both 0.5.3 and 0.7.0.

dcap-qvl 0.5.3 compared all 16 bytes of TEE_TCB_SVN against the platform
TCB levels. With a non-zero TDX module version (TEE_TCB_SVN[1]), Intel's
QVL matches the platform on TEE_TCB_SVN[2..] and appraises the module
SVN through tdxModuleIdentities instead, so 0.5.3 refused quotes from
hosts whose module SVN is below the levels' byte 0 with "No matching TCB
level found". 0.7.0 evaluates them as Intel's QVL does.

0.7.0 reworked TDAttributes, so the local key provider now checks the raw
TD_ATTRIBUTES against the same allowed bits as before (SEPT_VE_DISABLE,
PKS, KL, PERFMON). validate_tcb handles the new TD 1.5ex report body like
TD 1.5, as dcap-qvl does.

Fixes #1462

Signed-off-by: Kevin Wang <wy721@qq.com>
@kvinwang
kvinwang merged commit a0472c6 into next Oct 28, 2026
12 checks passed
@kvinwang
kvinwang deleted the deps/dcap-qvl-0.7 branch October 28, 2026 06:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

local-key-provider refuses TDX module 2.0 quotes: dcap-qvl 0.5.3 "No matching TCB level found"

1 participant