Re: [PATCH 186/190] Revert "virt: vbox: Only copy_from_user the request-header once"

From: Tavis Ormandy
Date: Wed Apr 21 2021 - 11:20:08 EST


On 2021-04-21, Greg Kroah-Hartman wrote:
> This reverts commit bd23a7269834dc7c1f93e83535d16ebc44b75eba.
>
> - *((struct vbg_ioctl_hdr *)buf) = hdr;
> - if (copy_from_user(buf + sizeof(hdr), (void *)arg + sizeof(hdr),
> - hdr.size_in - sizeof(hdr))) {
> + if (copy_from_user(buf, (void *)arg, hdr.size_in)) {
> ret = -EFAULT;
> goto out;
> }

This one seems like a real bugfix, otherwise there's a double-fetch from
userspace, and a TOCTOU with the hdr fields that could cause a OOB read.

Reviewed-by: Tavis Ormandy <taviso@xxxxxxxxx>

Tavis.


--
_o) $ lynx lock.cmpxchg8b.com
/\\ _o) _o) $ finger taviso@xxxxxxx
_\_V _( ) _( ) @taviso