Problem Description:
bhyve can be configured to provide access to the host's TPM
device, where it passes the communication through an emulated device
provided to the guest. This may be performed on the command-line
by starting bhyve with the `-l tpm,passthru,/dev/tpmX` parameters.
The MMIO handler for the emulated device did not validate the offset
and size of the memory access correctly, allowing guests to read
and write memory contents outside of the memory area effectively
allocated.
Impact:
Malicious software running in a guest VM can exploit the buffer
overflow to achieve code execution on the host in the bhyve userspace
process, which typically runs as root. Note that bhyve runs in a
Capsicum sandbox, so malicious code is constrained by the capabilities
available to the bhyve process.