rtnl: recv_message - don't enforce sender uid

All we care about is that the kernel (pid==0) sent the message. Verifying the sender uid
seems to break when using userns.

Reported by Stéphane Graber.
This commit is contained in:
Tom Gundersen
2014-12-29 02:18:21 +01:00
parent 2da780b976
commit 09773ef446

View File

@@ -1363,10 +1363,10 @@ static int socket_recv_message(int fd, struct iovec *iov, uint32_t *_group, bool
struct ucred *ucred = (void *)CMSG_DATA(cmsg);
/* from the kernel */
if (ucred->uid == 0 && ucred->pid == 0)
if (ucred->pid == 0)
auth = true;
else
log_debug("rtnl: ignoring message from uid %u pid %u", ucred->uid, ucred->pid);
log_debug("rtnl: ignoring message from pid %u", ucred->pid);
} else if (cmsg->cmsg_level == SOL_NETLINK &&
cmsg->cmsg_type == NETLINK_PKTINFO &&
cmsg->cmsg_len == CMSG_LEN(sizeof(struct nl_pktinfo))) {