Skip to content

ACPI tables from untrusted host input are not reconstructed or measured for CVMs #4533

Open

Description

@smo4201

Usually, we would expect ACPI tables being measured into TDX RTMR0 / vTPM PCR1 as they are untrusted host input. On OpenHCL TDX VMs, they are not measured into RTMR0/PCR1. Instead, the ACPI tables supplied by the untrusted host are partially dropped (e.g., the if(!isolated) gate in openhcl/underhill_core/src/loader/mod.rs:476) and generated within OpenHCL/UEFI firmware, i.e., within the TCB, which should be fine.

However, some ACPI tables do not have the isolated gate, e.g. SLIT (openhcl/underhill_core/src/loader/mod.rs:571). According to my understanding, these tables are supplied by the untrusted host and not covered by any measurement. There also seem to be no signature checks, it looks like the host could place arbitrary AML code.

However, considering that there have already been AML Attacks on CVMs in the past, I therefore wanted to ask, if there are plans to either construct these table instead of getting them from the untrusted host, or measure them? We require this for establishing trust in Azure CVMs during remote attestation.

Activity

  1. chris-oo commented on Sep 30, 2026

    @chris-oo
    Member

    Right, we should be at minimum reconstructing these tables (parsing then recreating them). We do want to move all of these table sources to be constructed via a device tree source provided by the host. I'll see about having a change for this out later today or tomorrow.

  2. smalis-msft commented on Oct 28, 2026

    @smalis-msft
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions