Thread (26 messages) 26 messages, 9 authors, 2024-08-27

Re: [PATCH net] net: drop bad gso csum_start and offset in virtio_net_hdr

From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Date: 2024-08-14 13:54:00
Also in: regressions, stable

Christian Heusel wrote:
On 24/08/14 10:10AM, Adrian Vladu wrote:
quoted
Hello,

The 6.6.y branch has the patch already in the stable queue -> https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/commit/?id=3e713b73c01fac163a5c8cb0953d1e300407a773, and it should be available in the 6.6.46 upcoming minor.

Thanks, Adrian.
Yeah it's also queued up for 6.10, which I both missed (sorry for that!).
If I'm able to properly backport the patch for 6.1 I'll send that one,
but my hopes are not too high that this will work ..
There are two conflicts.

The one in include/linux/virtio_net.h is resolved by first backporting
commit fc8b2a6194693 ("net: more strict VIRTIO_NET_HDR_GSO_UDP_L4
validation")

We did not backport that to stable because there was some slight risk
that applications might be affected. This has not surfaced.

The conflict in net/ipv4/udp_offload.c is not so easy to address.
There were lots of patches between v6.1 and linus/master, with far
fewer of these betwee v6.1 and linux-stable/linux-6.1.y.

We can also avoid the backport of fc8b2a6194693 and construct a custom
version for this older kernel. All this is needed in virtio_net.h is

+               case SKB_GSO_UDP_L4:
+               case SKB_GSO_TCPV4:
+               case SKB_GSO_TCPV6:
+                       if (skb->csum_offset != offsetof(struct tcphdr, check))

and in __udp_gso_segment

+       if (unlikely(skb_checksum_start(gso_skb) !=
+                    skb_transport_header(gso_skb)))
+               return ERR_PTR(-EINVAL);
+

The Fixes tag points to a commit introduced in 6.1. 6.6 is queued up,
so this is the only release for which we have to create a custom
patch, right?

Let me know if you will send this, or I should?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help