Skip to content

feat(tee): add TDX TEE framework support#542

Draft
abbesBenayache wants to merge 3 commits intomasterfrom
feat/tdx-support
Draft

feat(tee): add TDX TEE framework support#542
abbesBenayache wants to merge 3 commits intomasterfrom
feat/tdx-support

Conversation

@abbesBenayache
Copy link
Contributor

@abbesBenayache abbesBenayache commented Feb 10, 2026

Note

Medium Risk
Touches core tag validation and preflight requirement checks that gate order signing/matching, so mistakes could allow invalid TEE combinations or block valid ones; changes are covered by added tests but affect execution workflows.

Overview
Adds TDX as a new TeeFramework and tag bit, wiring it through tag encoding/validation, chain defaults (SMS URLs), and order preflight logic.

Updates iexec app init to support --tee-framework tdx via a new tdxTeeApp template (no on-chain mrenclave) and relaxes checkAppRequirements to treat a TDX tag as compatible with apps that don’t declare a TEE framework. Documentation and generated API docs are updated accordingly, along with new/updated unit+e2e tests and a large simplification/reorder of CLI.md command sections.

Written by Cursor Bugbot for commit 634ca38. This will update automatically on new commits. Configure here.

@abbesBenayache abbesBenayache self-assigned this Feb 10, 2026
@abbesBenayache abbesBenayache marked this pull request as draft February 10, 2026 17:54
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

teeFramework = vDefaultTeeFramework || TEE_FRAMEWORKS.SCONE,
teeFramework = vDefaultTeeFramework ||
TEE_FRAMEWORKS.SCONE ||
TEE_FRAMEWORKS.TDX,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dead code in default parameter due to OR chaining

Medium Severity

The expression vDefaultTeeFramework || TEE_FRAMEWORKS.SCONE || TEE_FRAMEWORKS.TDX always evaluates to vDefaultTeeFramework || 'scone' because TEE_FRAMEWORKS.SCONE ('scone') is truthy, so JavaScript's || short-circuits and TEE_FRAMEWORKS.TDX is never reached. The added || TEE_FRAMEWORKS.TDX is dead code and has no effect on behavior. If the intent was to support TDX as a possible default, a different approach is needed.

Fix in Cursor Fix in Web

framework && framework.toLowerCase() === TEE_FRAMEWORKS.TDX
? string().notRequired()
: fingerprintSchema.required(),
),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Schema regression loses string type validation for non-TDX

Medium Severity

In objMrenclaveSchema, the non-TDX branch for version and fingerprint calls versionSchema.required() / fingerprintSchema.required() where those schema parameters are the mixed() base. This yields mixed().required(), losing the string() type check that existed before this change. For SCONE and GRAMINE frameworks, version and fingerprint are no longer validated as strings — non-string values like numbers or objects now pass. The TDX branch correctly uses string().notRequired(), and the existing entrypoint field follows the correct pattern of returning a fresh string().required().

Fix in Cursor Fix in Web

@github-actions
Copy link

github-actions bot commented Feb 10, 2026

🐳 Hadolint Dockerfile Lint Results

Click to expand detailed results
Dockerfile:17 DL3016 warning: Pin versions in npm. Instead of `npm install <package>` use `npm install <package>@<version>`

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.

1 participant