Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cdbe7c2d authored by Jiri Benc's avatar Jiri Benc Committed by David S. Miller
Browse files

nfnetlink: do not ack malformed messages



Commit 0628b123 ("netfilter: nfnetlink: add batch support and use it
from nf_tables") introduced a bug leading to various crashes in netlink_ack
when netlink message with invalid nlmsg_len was sent by an unprivileged
user.

Signed-off-by: default avatarJiri Benc <jbenc@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 13eb2ab2
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -363,13 +363,15 @@ static void nfnetlink_rcv(struct sk_buff *skb)
	struct net *net = sock_net(skb->sk);
	int msglen;

	if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
		return netlink_ack(skb, nlh, -EPERM);

	if (nlh->nlmsg_len < NLMSG_HDRLEN ||
	    skb->len < nlh->nlmsg_len)
		return;

	if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) {
		netlink_ack(skb, nlh, -EPERM);
		return;
	}

	if (nlh->nlmsg_type == NFNL_MSG_BATCH_BEGIN) {
		struct nfgenmsg *nfgenmsg;