public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 5.4.y 5.10.y 0/4] Backport of CVE-2024-44986 fix to stable 5.4 and 5.10
@ 2024-12-25  5:16 Harshvardhan Jha
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head() Harshvardhan Jha
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Harshvardhan Jha @ 2024-12-25  5:16 UTC (permalink / raw)
  To: davem, kuznet, yoshfuji, kuba; +Cc: harshvardhan.j.jha, netdev, stable

Following is an attempt to backport fix of CVE-2024-44986 back to stable
5.4 and 5.10. 3 extra pre-requisite patches were required to introduce
the skb_expand_head() function and use it in ip6_finish_output2() for
the fix patch to be applicable.

Eric Dumazet (1):
  ipv6: fix possible UAF in ip6_finish_output2()

Vasily Averin (3):
  skbuff: introduce skb_expand_head()
  ipv6: use skb_expand_head in ip6_finish_output2
  ipv6: use skb_expand_head in ip6_xmit

 include/linux/skbuff.h |  1 +
 net/core/skbuff.c      | 42 ++++++++++++++++++++++
 net/ipv6/ip6_output.c  | 82 ++++++++++++++++--------------------------
 3 files changed, 74 insertions(+), 51 deletions(-)

-- 
2.46.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head()
  2024-12-25  5:16 [PATCH 5.4.y 5.10.y 0/4] Backport of CVE-2024-44986 fix to stable 5.4 and 5.10 Harshvardhan Jha
@ 2024-12-25  5:16 ` Harshvardhan Jha
  2024-12-26  1:21   ` Sasha Levin
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 2/4] ipv6: use skb_expand_head in ip6_finish_output2 Harshvardhan Jha
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Harshvardhan Jha @ 2024-12-25  5:16 UTC (permalink / raw)
  To: davem, kuznet, yoshfuji, kuba; +Cc: harshvardhan.j.jha, netdev, stable

From: Vasily Averin <vvs@virtuozzo.com>

[ Upstream commit f1260ff15a71b8fc122b2c9abd8a7abffb6e0168 ]

Like skb_realloc_headroom(), new helper increases headroom of specified skb.
Unlike skb_realloc_headroom(), it does not allocate a new skb if possible;
copies skb->sk on new skb when as needed and frees original skb in case
of failures.

This helps to simplify ip[6]_finish_output2() and a few other similar cases.

Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit f1260ff15a71b8fc122b2c9abd8a7abffb6e0168)
Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
---
 include/linux/skbuff.h |  1 +
 net/core/skbuff.c      | 42 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 31ae4b74d4352..3248e4aeec037 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -1166,6 +1166,7 @@ static inline struct sk_buff *__pskb_copy(struct sk_buff *skb, int headroom,
 int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, gfp_t gfp_mask);
 struct sk_buff *skb_realloc_headroom(struct sk_buff *skb,
 				     unsigned int headroom);
+struct sk_buff *skb_expand_head(struct sk_buff *skb, unsigned int headroom);
 struct sk_buff *skb_copy_expand(const struct sk_buff *skb, int newheadroom,
 				int newtailroom, gfp_t priority);
 int __must_check skb_to_sgvec_nomark(struct sk_buff *skb, struct scatterlist *sg,
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index b0c2d6f018003..fa3ea287d6ecc 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -1732,6 +1732,48 @@ struct sk_buff *skb_realloc_headroom(struct sk_buff *skb, unsigned int headroom)
 }
 EXPORT_SYMBOL(skb_realloc_headroom);
 
+/**
+ *	skb_expand_head - reallocate header of &sk_buff
+ *	@skb: buffer to reallocate
+ *	@headroom: needed headroom
+ *
+ *	Unlike skb_realloc_headroom, this one does not allocate a new skb
+ *	if possible; copies skb->sk to new skb as needed
+ *	and frees original skb in case of failures.
+ *
+ *	It expect increased headroom and generates warning otherwise.
+ */
+
+struct sk_buff *skb_expand_head(struct sk_buff *skb, unsigned int headroom)
+{
+	int delta = headroom - skb_headroom(skb);
+
+	if (WARN_ONCE(delta <= 0,
+		      "%s is expecting an increase in the headroom", __func__))
+		return skb;
+
+	/* pskb_expand_head() might crash, if skb is shared */
+	if (skb_shared(skb)) {
+		struct sk_buff *nskb = skb_clone(skb, GFP_ATOMIC);
+
+		if (likely(nskb)) {
+			if (skb->sk)
+				skb_set_owner_w(nskb, skb->sk);
+			consume_skb(skb);
+		} else {
+			kfree_skb(skb);
+		}
+		skb = nskb;
+	}
+	if (skb &&
+	    pskb_expand_head(skb, SKB_DATA_ALIGN(delta), 0, GFP_ATOMIC)) {
+		kfree_skb(skb);
+		skb = NULL;
+	}
+	return skb;
+}
+EXPORT_SYMBOL(skb_expand_head);
+
 /**
  *	skb_copy_expand	-	copy and expand sk_buff
  *	@skb: buffer to copy
-- 
2.46.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 5.4.y 5.10.y 2/4] ipv6: use skb_expand_head in ip6_finish_output2
  2024-12-25  5:16 [PATCH 5.4.y 5.10.y 0/4] Backport of CVE-2024-44986 fix to stable 5.4 and 5.10 Harshvardhan Jha
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head() Harshvardhan Jha
@ 2024-12-25  5:16 ` Harshvardhan Jha
  2024-12-26  1:21   ` Sasha Levin
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 3/4] ipv6: use skb_expand_head in ip6_xmit Harshvardhan Jha
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 4/4] ipv6: fix possible UAF in ip6_finish_output2() Harshvardhan Jha
  3 siblings, 1 reply; 11+ messages in thread
From: Harshvardhan Jha @ 2024-12-25  5:16 UTC (permalink / raw)
  To: davem, kuznet, yoshfuji, kuba; +Cc: harshvardhan.j.jha, netdev, stable

From: Vasily Averin <vvs@virtuozzo.com>

[ Upstream commit e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 ]

Unlike skb_realloc_headroom, new helper skb_expand_head does not allocate
a new skb if possible.

Additionally this patch replaces commonly used dereferencing with variables.

Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2)
Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
---
 net/ipv6/ip6_output.c | 51 ++++++++++++++-----------------------------
 1 file changed, 16 insertions(+), 35 deletions(-)

diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 26d8105981e96..7806963b4539e 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -60,46 +60,29 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
 {
 	struct dst_entry *dst = skb_dst(skb);
 	struct net_device *dev = dst->dev;
+	struct inet6_dev *idev = ip6_dst_idev(dst);
 	unsigned int hh_len = LL_RESERVED_SPACE(dev);
-	int delta = hh_len - skb_headroom(skb);
-	const struct in6_addr *nexthop;
+	const struct in6_addr *daddr, *nexthop;
+	struct ipv6hdr *hdr;
 	struct neighbour *neigh;
 	int ret;
 
 	/* Be paranoid, rather than too clever. */
-	if (unlikely(delta > 0) && dev->header_ops) {
-		/* pskb_expand_head() might crash, if skb is shared */
-		if (skb_shared(skb)) {
-			struct sk_buff *nskb = skb_clone(skb, GFP_ATOMIC);
-
-			if (likely(nskb)) {
-				if (skb->sk)
-					skb_set_owner_w(nskb, skb->sk);
-				consume_skb(skb);
-			} else {
-				kfree_skb(skb);
-			}
-			skb = nskb;
-		}
-		if (skb &&
-		    pskb_expand_head(skb, SKB_DATA_ALIGN(delta), 0, GFP_ATOMIC)) {
-			kfree_skb(skb);
-			skb = NULL;
-		}
+	if (unlikely(hh_len > skb_headroom(skb)) && dev->header_ops) {
+		skb = skb_expand_head(skb, hh_len);
 		if (!skb) {
-			IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTDISCARDS);
+			IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
 			return -ENOMEM;
 		}
 	}
 
-	if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) {
-		struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
-
+	hdr = ipv6_hdr(skb);
+	daddr = &hdr->daddr;
+	if (ipv6_addr_is_multicast(daddr)) {
 		if (!(dev->flags & IFF_LOOPBACK) && sk_mc_loop(sk) &&
 		    ((mroute6_is_socket(net, skb) &&
 		     !(IP6CB(skb)->flags & IP6SKB_FORWARDED)) ||
-		     ipv6_chk_mcast_addr(dev, &ipv6_hdr(skb)->daddr,
-					 &ipv6_hdr(skb)->saddr))) {
+		     ipv6_chk_mcast_addr(dev, daddr, &hdr->saddr))) {
 			struct sk_buff *newskb = skb_clone(skb, GFP_ATOMIC);
 
 			/* Do not check for IFF_ALLMULTI; multicast routing
@@ -110,7 +93,7 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
 					net, sk, newskb, NULL, newskb->dev,
 					dev_loopback_xmit);
 
-			if (ipv6_hdr(skb)->hop_limit == 0) {
+			if (hdr->hop_limit == 0) {
 				IP6_INC_STATS(net, idev,
 					      IPSTATS_MIB_OUTDISCARDS);
 				kfree_skb(skb);
@@ -119,9 +102,7 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
 		}
 
 		IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUTMCAST, skb->len);
-
-		if (IPV6_ADDR_MC_SCOPE(&ipv6_hdr(skb)->daddr) <=
-		    IPV6_ADDR_SCOPE_NODELOCAL &&
+		if (IPV6_ADDR_MC_SCOPE(daddr) <= IPV6_ADDR_SCOPE_NODELOCAL &&
 		    !(dev->flags & IFF_LOOPBACK)) {
 			kfree_skb(skb);
 			return 0;
@@ -136,10 +117,10 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
 	}
 
 	rcu_read_lock_bh();
-	nexthop = rt6_nexthop((struct rt6_info *)dst, &ipv6_hdr(skb)->daddr);
-	neigh = __ipv6_neigh_lookup_noref(dst->dev, nexthop);
+	nexthop = rt6_nexthop((struct rt6_info *)dst, daddr);
+	neigh = __ipv6_neigh_lookup_noref(dev, nexthop);
 	if (unlikely(!neigh))
-		neigh = __neigh_create(&nd_tbl, nexthop, dst->dev, false);
+		neigh = __neigh_create(&nd_tbl, nexthop, dev, false);
 	if (!IS_ERR(neigh)) {
 		sock_confirm_neigh(skb, neigh);
 		ret = neigh_output(neigh, skb, false);
@@ -148,7 +129,7 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
 	}
 	rcu_read_unlock_bh();
 
-	IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES);
+	IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTNOROUTES);
 	kfree_skb(skb);
 	return -EINVAL;
 }
-- 
2.46.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 5.4.y 5.10.y 3/4] ipv6: use skb_expand_head in ip6_xmit
  2024-12-25  5:16 [PATCH 5.4.y 5.10.y 0/4] Backport of CVE-2024-44986 fix to stable 5.4 and 5.10 Harshvardhan Jha
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head() Harshvardhan Jha
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 2/4] ipv6: use skb_expand_head in ip6_finish_output2 Harshvardhan Jha
@ 2024-12-25  5:16 ` Harshvardhan Jha
  2024-12-26  1:21   ` Sasha Levin
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 4/4] ipv6: fix possible UAF in ip6_finish_output2() Harshvardhan Jha
  3 siblings, 1 reply; 11+ messages in thread
From: Harshvardhan Jha @ 2024-12-25  5:16 UTC (permalink / raw)
  To: davem, kuznet, yoshfuji, kuba; +Cc: harshvardhan.j.jha, netdev, stable

From: Vasily Averin <vvs@virtuozzo.com>

[ Upstream commit 0c9f227bee11910a49e1d159abe102d06e3745d5 ]

Unlike skb_realloc_headroom, new helper skb_expand_head
does not allocate a new skb if possible.

Additionally this patch replaces commonly used dereferencing with variables.

Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 0c9f227bee11910a49e1d159abe102d06e3745d5)
Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
---
 net/ipv6/ip6_output.c | 27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 7806963b4539e..a8475848d0382 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -254,6 +254,8 @@ int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
 	const struct ipv6_pinfo *np = inet6_sk(sk);
 	struct in6_addr *first_hop = &fl6->daddr;
 	struct dst_entry *dst = skb_dst(skb);
+	struct net_device *dev = dst->dev;
+	struct inet6_dev *idev = ip6_dst_idev(dst);
 	unsigned int head_room;
 	struct ipv6hdr *hdr;
 	u8  proto = fl6->flowi6_proto;
@@ -261,22 +263,16 @@ int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
 	int hlimit = -1;
 	u32 mtu;
 
-	head_room = sizeof(struct ipv6hdr) + LL_RESERVED_SPACE(dst->dev);
+	head_room = sizeof(struct ipv6hdr) + LL_RESERVED_SPACE(dev);
 	if (opt)
 		head_room += opt->opt_nflen + opt->opt_flen;
 
-	if (unlikely(skb_headroom(skb) < head_room)) {
-		struct sk_buff *skb2 = skb_realloc_headroom(skb, head_room);
-		if (!skb2) {
-			IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
-				      IPSTATS_MIB_OUTDISCARDS);
-			kfree_skb(skb);
+	if (unlikely(head_room > skb_headroom(skb))) {
+		skb = skb_expand_head(skb, head_room);
+		if (!skb) {
+			IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
 			return -ENOBUFS;
 		}
-		if (skb->sk)
-			skb_set_owner_w(skb2, skb->sk);
-		consume_skb(skb);
-		skb = skb2;
 	}
 
 	if (opt) {
@@ -318,8 +314,7 @@ int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
 
 	mtu = dst_mtu(dst);
 	if ((skb->len <= mtu) || skb->ignore_df || skb_is_gso(skb)) {
-		IP6_UPD_PO_STATS(net, ip6_dst_idev(skb_dst(skb)),
-			      IPSTATS_MIB_OUT, skb->len);
+		IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUT, skb->len);
 
 		/* if egress device is enslaved to an L3 master device pass the
 		 * skb to its handler for processing
@@ -332,17 +327,17 @@ int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
 		 * we promote our socket to non const
 		 */
 		return NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT,
-			       net, (struct sock *)sk, skb, NULL, dst->dev,
+			       net, (struct sock *)sk, skb, NULL, dev,
 			       dst_output);
 	}
 
-	skb->dev = dst->dev;
+	skb->dev = dev;
 	/* ipv6_local_error() does not require socket lock,
 	 * we promote our socket to non const
 	 */
 	ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu);
 
-	IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS);
+	IP6_INC_STATS(net, idev, IPSTATS_MIB_FRAGFAILS);
 	kfree_skb(skb);
 	return -EMSGSIZE;
 }
-- 
2.46.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 5.4.y 5.10.y 4/4] ipv6: fix possible UAF in ip6_finish_output2()
  2024-12-25  5:16 [PATCH 5.4.y 5.10.y 0/4] Backport of CVE-2024-44986 fix to stable 5.4 and 5.10 Harshvardhan Jha
                   ` (2 preceding siblings ...)
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 3/4] ipv6: use skb_expand_head in ip6_xmit Harshvardhan Jha
@ 2024-12-25  5:16 ` Harshvardhan Jha
  2024-12-26  1:21   ` Sasha Levin
  3 siblings, 1 reply; 11+ messages in thread
From: Harshvardhan Jha @ 2024-12-25  5:16 UTC (permalink / raw)
  To: davem, kuznet, yoshfuji, kuba; +Cc: harshvardhan.j.jha, netdev, stable

From: Eric Dumazet <edumazet@google.com>

[ Upstream commit e891b36de161fcd96f12ff83667473e5067b9037 ]

If skb_expand_head() returns NULL, skb has been freed
and associated dst/idev could also have been freed.

We need to hold rcu_read_lock() to make sure the dst and
associated idev are alive.

Fixes: 5796015fa968 ("ipv6: allocate enough headroom in ip6_finish_output2()")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Vasily Averin <vasily.averin@linux.dev>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://patch.msgid.link/20240820160859.3786976-3-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit e891b36de161fcd96f12ff83667473e5067b9037)
Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
---
 net/ipv6/ip6_output.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index a8475848d0382..48f926157ef8c 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -69,11 +69,15 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
 
 	/* Be paranoid, rather than too clever. */
 	if (unlikely(hh_len > skb_headroom(skb)) && dev->header_ops) {
+		/* Make sure idev stays alive */
+		rcu_read_lock();
 		skb = skb_expand_head(skb, hh_len);
 		if (!skb) {
 			IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
+			rcu_read_unlock();
 			return -ENOMEM;
 		}
+		rcu_read_unlock();
 	}
 
 	hdr = ipv6_hdr(skb);
-- 
2.46.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 5.4.y 5.10.y 4/4] ipv6: fix possible UAF in ip6_finish_output2()
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 4/4] ipv6: fix possible UAF in ip6_finish_output2() Harshvardhan Jha
@ 2024-12-26  1:21   ` Sasha Levin
  0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2024-12-26  1:21 UTC (permalink / raw)
  To: stable; +Cc: Harshvardhan Jha, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

The claimed upstream commit SHA1 (e891b36de161fcd96f12ff83667473e5067b9037) was not found.
However, I found a matching commit: da273b377ae0d9bd255281ed3c2adb228321687b

WARNING: Author mismatch between patch and found commit:
Backport author: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
Commit author: Eric Dumazet <edumazet@google.com>


Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: 6ab6bf731354)
6.1.y | Present (different SHA1: 3574d28caf9a)
5.15.y | Present (different SHA1: e891b36de161)
5.10.y | Not found

Note: The patch differs from the upstream commit:
---
Failed to apply patch cleanly, falling back to interdiff...
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.10.y       |  Success    |  Success   |
| stable/linux-5.4.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 5.4.y 5.10.y 2/4] ipv6: use skb_expand_head in ip6_finish_output2
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 2/4] ipv6: use skb_expand_head in ip6_finish_output2 Harshvardhan Jha
@ 2024-12-26  1:21   ` Sasha Levin
  0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2024-12-26  1:21 UTC (permalink / raw)
  To: stable; +Cc: Harshvardhan Jha, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

The upstream commit SHA1 provided is correct: e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
Commit author: Vasily Averin <vvs@virtuozzo.com>


Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
6.1.y | Present (exact SHA1)
5.15.y | Present (exact SHA1)
5.10.y | Not found

Note: The patch differs from the upstream commit:
---
1:  e415ed3a4b8b ! 1:  5d647c73654a ipv6: use skb_expand_head in ip6_finish_output2
    @@ Metadata
      ## Commit message ##
         ipv6: use skb_expand_head in ip6_finish_output2
     
    +    [ Upstream commit e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2 ]
    +
         Unlike skb_realloc_headroom, new helper skb_expand_head does not allocate
         a new skb if possible.
     
    @@ Commit message
     
         Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
         Signed-off-by: David S. Miller <davem@davemloft.net>
    +    (cherry picked from commit e415ed3a4b8b246ee5e9d109ff5153efcf96b9f2)
    +    Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
     
      ## net/ipv6/ip6_output.c ##
     @@ net/ipv6/ip6_output.c: static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.10.y       |  Success    |  Success   |
| stable/linux-5.4.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head()
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head() Harshvardhan Jha
@ 2024-12-26  1:21   ` Sasha Levin
  2024-12-26 12:44     ` Harshvardhan Jha
  0 siblings, 1 reply; 11+ messages in thread
From: Sasha Levin @ 2024-12-26  1:21 UTC (permalink / raw)
  To: stable; +Cc: Harshvardhan Jha, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

The upstream commit SHA1 provided is correct: f1260ff15a71b8fc122b2c9abd8a7abffb6e0168

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
Commit author: Vasily Averin <vvs@virtuozzo.com>


Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
6.1.y | Present (exact SHA1)
5.15.y | Present (exact SHA1)
5.10.y | Not found

Note: The patch differs from the upstream commit:
---
1:  f1260ff15a71 ! 1:  ee7ccf9396c7 skbuff: introduce skb_expand_head()
    @@ Metadata
      ## Commit message ##
         skbuff: introduce skb_expand_head()
     
    +    [ Upstream commit f1260ff15a71b8fc122b2c9abd8a7abffb6e0168 ]
    +
         Like skb_realloc_headroom(), new helper increases headroom of specified skb.
         Unlike skb_realloc_headroom(), it does not allocate a new skb if possible;
         copies skb->sk on new skb when as needed and frees original skb in case
    @@ Commit message
     
         Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
         Signed-off-by: David S. Miller <davem@davemloft.net>
    +    (cherry picked from commit f1260ff15a71b8fc122b2c9abd8a7abffb6e0168)
    +    Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
     
      ## include/linux/skbuff.h ##
     @@ include/linux/skbuff.h: static inline struct sk_buff *__pskb_copy(struct sk_buff *skb, int headroom,
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.10.y       |  Success    |  Success   |
| stable/linux-5.4.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 5.4.y 5.10.y 3/4] ipv6: use skb_expand_head in ip6_xmit
  2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 3/4] ipv6: use skb_expand_head in ip6_xmit Harshvardhan Jha
@ 2024-12-26  1:21   ` Sasha Levin
  0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2024-12-26  1:21 UTC (permalink / raw)
  To: stable; +Cc: Harshvardhan Jha, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

The upstream commit SHA1 provided is correct: 0c9f227bee11910a49e1d159abe102d06e3745d5

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
Commit author: Vasily Averin <vvs@virtuozzo.com>


Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
6.1.y | Present (exact SHA1)
5.15.y | Present (exact SHA1)
5.10.y | Not found

Note: The patch differs from the upstream commit:
---
1:  0c9f227bee11 ! 1:  a38cbbbc21d7 ipv6: use skb_expand_head in ip6_xmit
    @@ Metadata
      ## Commit message ##
         ipv6: use skb_expand_head in ip6_xmit
     
    +    [ Upstream commit 0c9f227bee11910a49e1d159abe102d06e3745d5 ]
    +
         Unlike skb_realloc_headroom, new helper skb_expand_head
         does not allocate a new skb if possible.
     
    @@ Commit message
     
         Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
         Signed-off-by: David S. Miller <davem@davemloft.net>
    +    (cherry picked from commit 0c9f227bee11910a49e1d159abe102d06e3745d5)
    +    Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
     
      ## net/ipv6/ip6_output.c ##
     @@ net/ipv6/ip6_output.c: int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.10.y       |  Success    |  Success   |
| stable/linux-5.4.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head()
  2024-12-26  1:21   ` Sasha Levin
@ 2024-12-26 12:44     ` Harshvardhan Jha
  2024-12-26 21:45       ` Sasha Levin
  0 siblings, 1 reply; 11+ messages in thread
From: Harshvardhan Jha @ 2024-12-26 12:44 UTC (permalink / raw)
  To: Sasha Levin, stable

Hi,

On 26/12/24 6:51 AM, Sasha Levin wrote:
> [ Sasha's backport helper bot ]
>
> Hi,
>
> The upstream commit SHA1 provided is correct: f1260ff15a71b8fc122b2c9abd8a7abffb6e0168
>
> WARNING: Author mismatch between patch and upstream commit:
> Backport author: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
> Commit author: Vasily Averin <vvs@virtuozzo.com>
The only difference I see is that this patch has my signed off by?
As seen below, the tests also pass. Can you please tell me what is
needed to rectify this warning?
>
> Status in newer kernel trees:
> 6.12.y | Present (exact SHA1)
> 6.6.y | Present (exact SHA1)
> 6.1.y | Present (exact SHA1)
> 5.15.y | Present (exact SHA1)
> 5.10.y | Not found
>
> Note: The patch differs from the upstream commit:
> ---
> 1:  f1260ff15a71 ! 1:  ee7ccf9396c7 skbuff: introduce skb_expand_head()
>     @@ Metadata
>       ## Commit message ##
>          skbuff: introduce skb_expand_head()
>      
>     +    [ Upstream commit f1260ff15a71b8fc122b2c9abd8a7abffb6e0168 ]
>     +
>          Like skb_realloc_headroom(), new helper increases headroom of specified skb.
>          Unlike skb_realloc_headroom(), it does not allocate a new skb if possible;
>          copies skb->sk on new skb when as needed and frees original skb in case
>     @@ Commit message
>      
>          Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
>          Signed-off-by: David S. Miller <davem@davemloft.net>
>     +    (cherry picked from commit f1260ff15a71b8fc122b2c9abd8a7abffb6e0168)
>     +    Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
>      
>       ## include/linux/skbuff.h ##
>      @@ include/linux/skbuff.h: static inline struct sk_buff *__pskb_copy(struct sk_buff *skb, int headroom,
> ---
>
> Results of testing on various branches:
>
> | Branch                    | Patch Apply | Build Test |
> |---------------------------|-------------|------------|
> | stable/linux-5.10.y       |  Success    |  Success   |
> | stable/linux-5.4.y        |  Success    |  Success   |

Thanks & Regards,
Harshvardhan


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head()
  2024-12-26 12:44     ` Harshvardhan Jha
@ 2024-12-26 21:45       ` Sasha Levin
  0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2024-12-26 21:45 UTC (permalink / raw)
  To: Harshvardhan Jha; +Cc: stable

On Thu, Dec 26, 2024 at 06:14:10PM +0530, Harshvardhan Jha wrote:
>Hi,
>
>On 26/12/24 6:51 AM, Sasha Levin wrote:
>> [ Sasha's backport helper bot ]
>>
>> Hi,
>>
>> The upstream commit SHA1 provided is correct: f1260ff15a71b8fc122b2c9abd8a7abffb6e0168
>>
>> WARNING: Author mismatch between patch and upstream commit:
>> Backport author: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
>> Commit author: Vasily Averin <vvs@virtuozzo.com>
>The only difference I see is that this patch has my signed off by?
>As seen below, the tests also pass. Can you please tell me what is
>needed to rectify this warning?

Nothing to do in this case, this will just make our review easier.

Thanks!

-- 
Thanks,
Sasha

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-12-26 21:45 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-25  5:16 [PATCH 5.4.y 5.10.y 0/4] Backport of CVE-2024-44986 fix to stable 5.4 and 5.10 Harshvardhan Jha
2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 1/4] skbuff: introduce skb_expand_head() Harshvardhan Jha
2024-12-26  1:21   ` Sasha Levin
2024-12-26 12:44     ` Harshvardhan Jha
2024-12-26 21:45       ` Sasha Levin
2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 2/4] ipv6: use skb_expand_head in ip6_finish_output2 Harshvardhan Jha
2024-12-26  1:21   ` Sasha Levin
2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 3/4] ipv6: use skb_expand_head in ip6_xmit Harshvardhan Jha
2024-12-26  1:21   ` Sasha Levin
2024-12-25  5:16 ` [PATCH 5.4.y 5.10.y 4/4] ipv6: fix possible UAF in ip6_finish_output2() Harshvardhan Jha
2024-12-26  1:21   ` Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox