stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Patch "ipv6: sctp: clone options to avoid use after free" has been added to the 3.14-stable tree
@ 2016-01-19  5:20 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2016-01-19  5:20 UTC (permalink / raw)
  To: edumazet, davem, dvyukov, gregkh, vyasevich; +Cc: stable, stable-commits


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 3.14-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-3.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From foo@baz Mon Jan 18 21:17:42 PST 2016
From: Eric Dumazet <edumazet@google.com>
Date: Wed, 9 Dec 2015 07:25:06 -0800
Subject: ipv6: sctp: clone options to avoid use after free
Status: RO
Content-Length: 1365
Lines: 47

From: Eric Dumazet <edumazet@google.com>

[ 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.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Vlad Yasevich <vyasevich@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sctp/ipv6.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/net/sctp/ipv6.c
+++ b/net/sctp/ipv6.c
@@ -638,6 +638,7 @@ static struct sock *sctp_v6_create_accep
 	struct 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)
@@ -657,6 +658,13 @@ static struct sock *sctp_v6_create_accep
 
 	memcpy(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 edumazet@google.com are

queue-3.14/packet-infer-protocol-from-ethernet-header-if-unset.patch
queue-3.14/ipv6-sctp-clone-options-to-avoid-use-after-free.patch
queue-3.14/ipv6-sctp-implement-sctp_v6_destroy_sock.patch
queue-3.14/net-scm-fix-pax-detected-msg_controllen-overflow-in-scm_detach_fds.patch
queue-3.14/tcp-md5-fix-lockdep-annotation.patch
queue-3.14/tcp-initialize-tp-copied_seq-in-case-of-cross-syn-connection.patch
queue-3.14/packet-do-skb_probe_transport_header-when-we-actually-have-data.patch

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2016-01-19  7:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-19  5:20 Patch "ipv6: sctp: clone options to avoid use after free" has been added to the 3.14-stable tree gregkh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).