This post surveys some concerning attacks on TEEs. The goal is to persuade you to re-consider how you deploy TEE-based applications, if you should deploy them at all.

Trusted hardware companies (Intel, AMD, etc.) mainly compete on performance, functionality and (one hopes) developer-friendliness. They may try to compete on security, but this is hard, in my opinion: there’s always someone else who can (mis)claim more security and such claims are hard to adjudicate by the market. Furthermore, the complexity of modern CPU architectures and the pervasiveness of side-channels makes TEE security claims tenuous.

In any case, (some of) the TEE attacks follow below.

Bugs in the enclave code

Enclaves are meant to protect secrets and integrity of computation from the environment (e.g., host OS, or even the physical environment). But even if the enclave platform is secure, bugs in the code running in the enclave can lead to disaster.