Re: [PATCH] vsock: use ns_capable_noaudit() on socket create
On Tue, 27 Oct 2020 07:37:37 +1100 (AEDT) James Morris wrote: > On Fri, 23 Oct 2020, Jeff Vander Stoep wrote: > > > During __vsock_create() CAP_NET_ADMIN is used to determine if the > > vsock_sock->trusted should be set to true. This value is used later > > for determing if a remote connection should be allowed to connect > > to a restricted VM. Unfortunately, if the caller doesn't have > > CAP_NET_ADMIN, an audit message such as an selinux denial is > > generated even if the caller does not want a trusted socket. > > > > Logging errors on success is confusing. To avoid this, switch the > > capable(CAP_NET_ADMIN) check to the noaudit version. > > > > Reported-by: Roman Kiryanov > > https://android-review.googlesource.com/c/device/generic/goldfish/+/1468545/ > > Signed-off-by: Jeff Vander Stoep > > Reviewed-by: James Morris Applied to net, thanks!
Re: [PATCH] vsock: use ns_capable_noaudit() on socket create
On Fri, 23 Oct 2020, Jeff Vander Stoep wrote: > During __vsock_create() CAP_NET_ADMIN is used to determine if the > vsock_sock->trusted should be set to true. This value is used later > for determing if a remote connection should be allowed to connect > to a restricted VM. Unfortunately, if the caller doesn't have > CAP_NET_ADMIN, an audit message such as an selinux denial is > generated even if the caller does not want a trusted socket. > > Logging errors on success is confusing. To avoid this, switch the > capable(CAP_NET_ADMIN) check to the noaudit version. > > Reported-by: Roman Kiryanov > https://android-review.googlesource.com/c/device/generic/goldfish/+/1468545/ > Signed-off-by: Jeff Vander Stoep Reviewed-by: James Morris -- James Morris
[PATCH] vsock: use ns_capable_noaudit() on socket create
During __vsock_create() CAP_NET_ADMIN is used to determine if the vsock_sock->trusted should be set to true. This value is used later for determing if a remote connection should be allowed to connect to a restricted VM. Unfortunately, if the caller doesn't have CAP_NET_ADMIN, an audit message such as an selinux denial is generated even if the caller does not want a trusted socket. Logging errors on success is confusing. To avoid this, switch the capable(CAP_NET_ADMIN) check to the noaudit version. Reported-by: Roman Kiryanov https://android-review.googlesource.com/c/device/generic/goldfish/+/1468545/ Signed-off-by: Jeff Vander Stoep --- net/vmw_vsock/af_vsock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c index 9e93bc201cc0..b4d7b8aba003 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c @@ -739,7 +739,7 @@ static struct sock *__vsock_create(struct net *net, vsk->buffer_min_size = psk->buffer_min_size; vsk->buffer_max_size = psk->buffer_max_size; } else { - vsk->trusted = capable(CAP_NET_ADMIN); + vsk->trusted = ns_capable_noaudit(_user_ns, CAP_NET_ADMIN); vsk->owner = get_current_cred(); vsk->connect_timeout = VSOCK_DEFAULT_CONNECT_TIMEOUT; vsk->buffer_size = VSOCK_DEFAULT_BUFFER_SIZE; -- 2.29.0.rc2.309.g374f81d7ae-goog