Re: [kernel-hardening] Re: [PATCH v9 1/4] syscalls: Verify address limit before returning to user-mode

From: Al Viro
Date: Tue May 09 2017 - 23:22:29 EST


On Wed, May 10, 2017 at 04:12:54AM +0100, Al Viro wrote:

> Broken commit: "net: don't play with address limits in kernel_recvmsg".
> It would be OK if it was only about data. Unfortunately, that's not
> true in one case: svc_udp_recvfrom() wants ->msg_control.
>
> Another delicate place: you can't assume that write() always advances
> file position by its (positive) return value. btrfs stuff is sensitive
> to that.
>
> ashmem probably _is_ OK with demanding ->read_iter(), but I'm not sure
> about blind asma->file->f_pos += ret. That's begging for races. Actually,
> scratch that - it *is* racy.

kvec_length(): please, don't. I would rather have the last remaining
iov_length() gone... What do you need it for, anyway? You have only
two users and both have the count passed to them (as *count and *cnt resp.)