### [CVE-2021-32846](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-32846) ![](https://img.shields.io/static/v1?label=Product&message=hyperkit&color=blue) ![](https://img.shields.io/static/v1?label=Version&message=0.20210107%20&color=brightgreen) ![](https://img.shields.io/static/v1?label=Vulnerability&message=CWE-908%20Use%20of%20Uninitialized%20Resource&color=brightgreen) ### Description HyperKit is a toolkit for embedding hypervisor capabilities in an application. In versions 0.20210107, function `pci_vtsock_proc_tx` in `virtio-sock` can lead to to uninitialized memory use. In this situation, there is a check for the return value to be less or equal to `VTSOCK_MAXSEGS`, but that check is not sufficient because the function can return `-1` if it finds an error it cannot recover from. Moreover, the negative return value will be used by `iovec_pull` in a while condition that can further lead to more corruption because the function is not designed to handle a negative `iov_len`. This issue may lead to a guest crashing the host causing a denial of service and, under certain circumstance, memory corruption. This issue is fixed in commit af5eba2360a7351c08dfd9767d9be863a50ebaba. ### POC #### Reference - https://securitylab.github.com/advisories/GHSL-2021-054_057-moby-hyperkit/ #### Github - https://github.com/DiRaltvein/memory-corruption-examples