Patch "ipv6: sctp: clone options to avoid use after free" has been added to the 4.1-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
ipv6: sctp: clone options to avoid use after free
to the 4.1-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:
ipv6-sctp-clone-options-to-avoid-use-after-free.patch
and it can be found in the queue-4.1 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 Wed Dec 30 19:52:45 PST 2015
From: Eric Dumazet <[email protected]>
Date: Wed, 9 Dec 2015 07:25:06 -0800
Subject: ipv6: sctp: clone options to avoid use after free
From: Eric Dumazet <[email protected]>
[ Upstream commit 9470e24f35ab81574da54e69df90c1eb4a96b43f ]
SCTP is lacking proper np->opt cloning at accept() time.
TCP and DCCP use ipv6_dup_options() helper, do the same in SCTP.
We might later factorize this code in a common helper to avoid future mistakes.
--- net/sctp/ipv6.c | 8 ++++++++ 1 file changed, 8 insertions(+)
net/sctp/ipv6.c +8 -0
@@ -634,6 +634,7 @@ static struct sock *sctp_v6_create_accepstruct sock *newsk;struct ipv6_pinfo *newnp, *np =inet6_sk (sk);struct sctp6_sock *newsctp6sk; +struct ipv6_txoptions *opt; newsk =sk_alloc (sock_net (sk),PF_INET6 ,GFP_KERNEL , sk->sk_prot);if (!newsk)
@@ -653,6 +654,13 @@ static struct sock *sctp_v6_create_accepmemcpy (newnp, np,sizeof (struct ipv6_pinfo )); +rcu_read_lock (); + opt =rcu_dereference (np->opt); +if (opt) + opt =ipv6_dup_options (newsk, opt); +RCU_INIT_POINTER (newnp->opt, opt); +rcu_read_unlock (); +/* Initialize sk's sport, dport, rcv_saddr and daddr for getsockname() * and getpeername(). */
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/ipv6-sctp-clone-options-to-avoid-use-after-free.patch queue-4.1/tcp-restore-fastopen-with-no-data-in-syn-packet.patch queue-4.1/net_sched-make-qdisc_tree_decrease_qlen-work-for-non-mq.patch queue-4.1/net-fix-ip-early-demux-races.patch