Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 15 additions & 6 deletions src/hyperlight_host/src/sandbox/initialized.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5963,14 +5963,23 @@ mod tests {
"KVM guest CPUID exposes CET shadow stacks"
);

// With CET hidden the host cannot read or write IA32_S_CET, so
// allowing it is rejected at VM creation.
let err = SandboxBuilder::from_file(simple_guest_as_pathbuf())
// Some KVM hosts allow zero-valued CET MSRs without exposing CET to the guest.
let declared = SandboxBuilder::from_file(simple_guest_as_pathbuf())
.guest_msrs(&[MSR_S_CET])
.unwrap()
.build()
.expect_err("allowing IA32_S_CET must be rejected when CET is hidden");
assert_msr_not_declarable(&err, MSR_S_CET);
.build();
match declared {
Ok(mut sbox) => {
const CET_SHSTK_EN: u64 = 1;
let result = sbox.call::<()>("WriteMSR", (MSR_S_CET, CET_SHSTK_EN));
assert!(
matches!(result, Err(HyperlightError::GuestAborted(_, _))),
"expected a guest abort when enabling CET shadow stacks: {result:?}"
);
assert!(sbox.status().is_poisoned());
}
Err(err) => assert_msr_not_declarable(&err, MSR_S_CET),
}
}
}

Expand Down
Loading