Patch "ipv4: provide stronger user input validation in nl_fib_input()" has been added to the 4.10-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
ipv4: provide stronger user input validation in nl_fib_input()
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ipv4-provide-stronger-user-input-validation-in-nl_fib_input.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Mon Mar 27 18:18:08 CEST 2017
From: Eric Dumazet <[email protected]>
Date: Tue, 21 Mar 2017 19:22:28 -0700
Subject: ipv4: provide stronger user input validation in nl_fib_input()
From: Eric Dumazet <[email protected]>
[ Upstream commit c64c0b3cac4c5b8cb093727d2c19743ea3965c0b ]
Alexander reported a KMSAN splat caused by reads of uninitialized field (tb_id_in) from user provided struct fib_result_nl
It turns out nl_fib_input() sanity tests on user input is a bit wrong :
User can pretend nlh->nlmsg_len is big enough, but provide at sendmsg() time a too small buffer.
--- net/ipv4/fib_frontend.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
net/ipv4/fib_frontend.c +2 -1
@@ -1082,7 +1082,8 @@ static void nl_fib_input(struct sk_buff net =sock_net (skb->sk); nlh =nlmsg_hdr (skb); -if (skb->len <NLMSG_HDRLEN || skb->len < nlh->nlmsg_len || +if (skb->len <nlmsg_total_size (sizeof (*frn)) || + skb->len < nlh->nlmsg_len ||nlmsg_len (nlh) <sizeof (*frn))return ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/ipv4-provide-stronger-user-input-validation-in-nl_fib_input.patch queue-4.10/net-solve-a-napi-race.patch queue-4.10/tcp-initialize-icsk_ack.lrcvtime-at-session-start-time.patch queue-4.10/net-properly-release-sk_frag.page.patch