Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp7233750ybh; Thu, 8 Aug 2019 12:14:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqysNiyCpbC1gYtTEqhi5yjpt+OX50plJIlLbyjSoCLqPxOBCkNPeEOo+/zBSEQiVUeEKbK8 X-Received: by 2002:a17:902:8ec7:: with SMTP id x7mr15099536plo.224.1565291660467; Thu, 08 Aug 2019 12:14:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565291660; cv=none; d=google.com; s=arc-20160816; b=pAI+AixFBlOzUKwxKt2w9EoWryhdrjNtpVyNxBEqG+5O0pQA452udxIG/zws922dHR hpdVm7RDew8KevIGZaWopdgt/UJ6Wdtk8pG5tjqsmfCB2uxOKZo+nsuFr9MwVCEhqe22 Oq3y1hz21BPGFRnn3jaj9hWTQfaEl4838agX21zq/bD7eWJwW5MuqR5SncoRFUCcdqe6 Ac0pTgkvlkk5pZZilNDywRdE3WsYo3tXUF74M8MyigEHp7MwySpCZOGtIKK2E0dw9214 4uQ/fgmKrgKgSN5552n1oP6HmkJwhIkDyHMFWlpzzymX7ZN7eoKCyNc9EiuJwtF5dLS6 JGNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rWZbtiE0UjUqhZ0X8IVK6KYKyhwgo4JsFjwboz0GOEM=; b=NZVBDRFb22MbFFsl5ERAbJPvOiZI4ZGPpCZd4G+QddLKpY+Ehm5pOuPhy8AC8nbOer 5u3hZuGJaV/8WNE8PbonxGNQNWntT54zeYOHd3Y/d1Pja6Ltrxb6Z2yFGWHJHKNMTSnh kINTn/wVOi/n3bLjS7nrpYBjhGxgJwiVw43WP9XSECYSlD5g5pd1mXEDAkDauPVZ6LRi RAh+qgA1RoXADk0gSeMz8nfauN0oT9Bt4nfonpg1CzXmz9pUyUCAHnstqQaKpOXPLabJ jbnhRXuGINT4ws4Iw1nS3I4Zy6OsQvq3esWpxFMppKHfadv64RnDlNE0gkn0/T+k3QIf tLzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=H73m8YE5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t17si19474459pgu.48.2019.08.08.12.14.04; Thu, 08 Aug 2019 12:14:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=H73m8YE5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404953AbfHHTKk (ORCPT + 99 others); Thu, 8 Aug 2019 15:10:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:45032 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405334AbfHHTKh (ORCPT ); Thu, 8 Aug 2019 15:10:37 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6F762214C6; Thu, 8 Aug 2019 19:10:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565291436; bh=d2X5vi0u/zBX98fB5Q1TwQW6QPlzwvIK4dSsR5HCzds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H73m8YE5clqLyKObtLHKM8cLzuf9DRYdwCOho58FI+NOMV7iImaZkOmq4CktWhEkZ SDr4PKABnEbbMWUfYQ673QuF/T1On8NZ3dG5KlH0Py2nFGymqHcISc1QX1c8NIFk2+ Ql5e5vc8UlhlbN5YxYkRnXgHi6MJU+/ezGLec3SE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Haishuang Yan , "David S. Miller" Subject: [PATCH 4.14 14/33] ip6_tunnel: fix possible use-after-free on xmit Date: Thu, 8 Aug 2019 21:05:21 +0200 Message-Id: <20190808190454.273335824@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190808190453.582417307@linuxfoundation.org> References: <20190808190453.582417307@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Haishuang Yan [ Upstream commit 01f5bffad555f8e22a61f4b1261fe09cf1b96994 ] ip4ip6/ip6ip6 tunnels run iptunnel_handle_offloads on xmit which can cause a possible use-after-free accessing iph/ipv6h pointer since the packet will be 'uncloned' running pskb_expand_head if it is a cloned gso skb. Fixes: 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets") Signed-off-by: Haishuang Yan Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/ipv6/ip6_tunnel.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -1280,12 +1280,11 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str } fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); + dsfield = INET_ECN_encapsulate(dsfield, ipv4_get_dsfield(iph)); if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) return -1; - dsfield = INET_ECN_encapsulate(dsfield, ipv4_get_dsfield(iph)); - skb_set_inner_ipproto(skb, IPPROTO_IPIP); err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu, @@ -1371,12 +1370,11 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str } fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); + dsfield = INET_ECN_encapsulate(dsfield, ipv6_get_dsfield(ipv6h)); if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) return -1; - dsfield = INET_ECN_encapsulate(dsfield, ipv6_get_dsfield(ipv6h)); - skb_set_inner_ipproto(skb, IPPROTO_IPV6); err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu,