CVE-2022-49872

EUVD-2025-12885
In the Linux kernel, the following vulnerability has been resolved:

net: gso: fix panic on frag_list with mixed head alloc types

Since commit 3dcbdb134f32 ("net: gso: Fix skb_segment splat when
splitting gso_size mangled skb having linear-headed frag_list"), it is
allowed to change gso_size of a GRO packet. However, that commit assumes
that "checking the first list_skb member suffices; i.e if either of the
list_skb members have non head_frag head, then the first one has too".

It turns out this assumption does not hold. We've seen BUG_ON being hit
in skb_segment when skbs on the frag_list had differing head_frag with
the vmxnet3 driver. This happens because __netdev_alloc_skb and
__napi_alloc_skb can return a skb that is page backed or kmalloced
depending on the requested size. As the result, the last small skb in
the GRO packet can be kmalloced.

There are three different locations where this can be fixed:

(1) We could check head_frag in GRO and not allow GROing skbs with
    different head_frag. However, that would lead to performance
    regression on normal forward paths with unmodified gso_size, where
    !head_frag in the last packet is not a problem.

(2) Set a flag in bpf_skb_net_grow and bpf_skb_net_shrink indicating
    that NETIF_F_SG is undesirable. That would need to eat a bit in
    sk_buff. Furthermore, that flag can be unset when all skbs on the
    frag_list are page backed. To retain good performance,
    bpf_skb_net_grow/shrink would have to walk the frag_list.

(3) Walk the frag_list in skb_segment when determining whether
    NETIF_F_SG should be cleared. This of course slows things down.

This patch implements (3). To limit the performance impact in
skb_segment, the list is walked only for skbs with SKB_GSO_DODGY set
that have gso_size changed. Normal paths thus will not hit it.

We could check only the last skb but since we need to walk the whole
list anyway, let's stay on the safe side.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
5.5 MEDIUM
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Base Score
CVSS 3.x
EPSS Score
Percentile: 19%
Affected Products (NVD)
VendorProductVersion
linuxlinux_kernel
4.9.194 ≤
𝑥
< 4.9.334
linuxlinux_kernel
4.14.145 ≤
𝑥
< 4.14.300
linuxlinux_kernel
4.19.74 ≤
𝑥
< 4.19.267
linuxlinux_kernel
5.2.16 ≤
𝑥
< 5.3
linuxlinux_kernel
5.3.1 ≤
𝑥
< 5.4.225
linuxlinux_kernel
5.5 ≤
𝑥
< 5.10.155
linuxlinux_kernel
5.11 ≤
𝑥
< 5.15.79
linuxlinux_kernel
5.16 ≤
𝑥
< 6.0.9
linuxlinux_kernel
5.3
linuxlinux_kernel
6.1:rc1
linuxlinux_kernel
6.1:rc2
linuxlinux_kernel
6.1:rc3
linuxlinux_kernel
6.1:rc4
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
6.1.129-1
fixed
bookworm (security)
6.1.135-1
fixed
bullseye
5.10.223-1
fixed
bullseye (security)
5.10.234-1
fixed
sid
6.12.25-1
fixed
trixie
6.12.22-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-allwinner-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-aws
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-aws-5.0
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-aws-5.11
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-aws-5.13
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-aws-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-aws-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-aws-5.3
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-aws-5.4
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-aws-5.8
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-aws-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-aws-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-aws-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-aws-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-aws-hwe
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
xenial
needs-triage
linux-azure
bionic
ignored
focal
needs-triage
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-azure-4.15
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-5.11
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-5.13
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-azure-5.3
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-5.4
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-5.8
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-6.11
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-azure-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-azure-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-azure-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-azure-edge
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-fde
focal
ignored
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-azure-fde-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-azure-fde-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-azure-fde-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-azure-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-azure-nvidia
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-bluefield
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
xenial
needs-triage
linux-gcp
bionic
ignored
focal
needs-triage
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
xenial
needs-triage
linux-gcp-4.15
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gcp-5.11
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gcp-5.13
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gcp-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gcp-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-gcp-5.3
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gcp-5.4
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gcp-5.8
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gcp-6.11
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-gcp-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-gcp-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-gcp-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-gcp-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-gke
focal
ignored
jammy
needs-triage
noble
needs-triage
oracular
dne
plucky
dne
linux-gke-4.15
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gke-5.15
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gke-5.4
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gkeop
focal
ignored
jammy
needs-triage
noble
needs-triage
oracular
dne
plucky
dne
linux-gkeop-5.15
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-gkeop-5.4
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-hwe
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
xenial
needs-triage
linux-hwe-5.11
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-hwe-5.13
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-hwe-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-hwe-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-hwe-5.4
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-hwe-5.8
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-hwe-6.11
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-hwe-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-hwe-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-hwe-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-hwe-edge
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
xenial
ignored
linux-ibm
focal
needs-triage
jammy
needs-triage
noble
needs-triage
oracular
dne
plucky
dne
linux-ibm-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-ibm-5.4
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-intel-5.13
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-intel-iot-realtime
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-intel-iotg
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-intel-iotg-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-iot
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-kvm
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
xenial
needs-triage
linux-lowlatency
focal
dne
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
dne
linux-lowlatency-hwe-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-lowlatency-hwe-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-lowlatency-hwe-6.11
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-lowlatency-hwe-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-lowlatency-hwe-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-lowlatency-hwe-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-lts-xenial
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
trusty
needs-triage
linux-nvidia
focal
dne
jammy
needs-triage
noble
needs-triage
oracular
dne
plucky
dne
linux-nvidia-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-nvidia-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-nvidia-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-nvidia-lowlatency
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-nvidia-tegra
focal
dne
jammy
needs-triage
noble
needs-triage
oracular
dne
plucky
dne
linux-nvidia-tegra-igx
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-oem
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oem-5.10
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oem-5.13
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oem-5.14
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oem-5.17
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-oem-5.6
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oem-6.0
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-oem-6.1
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-oem-6.11
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-oem-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-oem-6.8
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-oracle
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
xenial
needs-triage
linux-oracle-5.0
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oracle-5.11
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oracle-5.13
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oracle-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oracle-5.3
bionic
ignored
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oracle-5.4
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oracle-5.8
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-oracle-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-oracle-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-raspi
focal
needs-triage
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
linux-raspi-5.4
bionic
needs-triage
focal
dne
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-raspi-realtime
focal
dne
jammy
dne
noble
needs-triage
oracular
dne
plucky
dne
linux-raspi2
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-realtime
focal
dne
jammy
needs-triage
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
linux-riscv
focal
ignored
jammy
ignored
noble
needs-triage
oracular
needs-triage
plucky
needs-triage
linux-riscv-5.11
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-riscv-5.15
focal
needs-triage
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-riscv-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-riscv-5.8
focal
ignored
jammy
dne
noble
dne
oracular
dne
plucky
dne
linux-riscv-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-riscv-6.8
focal
dne
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne
linux-starfive-5.19
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-starfive-6.2
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-starfive-6.5
focal
dne
jammy
ignored
noble
dne
oracular
dne
plucky
dne
linux-xilinx-zynqmp
focal
needs-triage
jammy
needs-triage
noble
dne
oracular
dne
plucky
dne