CVE-2024-47702

In the Linux kernel, the following vulnerability has been resolved:

bpf: Fail verification for sign-extension of packet data/data_end/data_meta

syzbot reported a kernel crash due to
  commit 1f1e864b6555 ("bpf: Handle sign-extenstin ctx member accesses").
The reason is due to sign-extension of 32-bit load for
packet data/data_end/data_meta uapi field.

The original code looks like:
        r2 = *(s32 *)(r1 + 76) /* load __sk_buff->data */
        r3 = *(u32 *)(r1 + 80) /* load __sk_buff->data_end */
        r0 = r2
        r0 += 8
        if r3 > r0 goto +1
        ...
Note that __sk_buff->data load has 32-bit sign extension.

After verification and convert_ctx_accesses(), the final asm code looks like:
        r2 = *(u64 *)(r1 +208)
        r2 = (s32)r2
        r3 = *(u64 *)(r1 +80)
        r0 = r2
        r0 += 8
        if r3 > r0 goto pc+1
        ...
Note that 'r2 = (s32)r2' may make the kernel __sk_buff->data address invalid
which may cause runtime failure.

Currently, in C code, typically we have
        void *data = (void *)(long)skb->data;
        void *data_end = (void *)(long)skb->data_end;
        ...
and it will generate
        r2 = *(u64 *)(r1 +208)
        r3 = *(u64 *)(r1 +80)
        r0 = r2
        r0 += 8
        if r3 > r0 goto pc+1

If we allow sign-extension,
        void *data = (void *)(long)(int)skb->data;
        void *data_end = (void *)(long)skb->data_end;
        ...
the generated code looks like
        r2 = *(u64 *)(r1 +208)
        r2 <<= 32
        r2 s>>= 32
        r3 = *(u64 *)(r1 +80)
        r0 = r2
        r0 += 8
        if r3 > r0 goto pc+1
and this will cause verification failure since "r2 <<= 32" is not allowed
as "r2" is a packet pointer.

To fix this issue for case
  r2 = *(s32 *)(r1 + 76) /* load __sk_buff->data */
this patch added additional checking in is_valid_access() callback
function for packet data/data_end/data_meta access. If those accesses
are with sign-extenstion, the verification will fail.

  [1] https://lore.kernel.org/bpf/000000000000c90eee061d236d37@google.com/
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
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
LinuxCNA
---
---
CISA-ADPADP
---
---
Base Score
CVSS 3.x
EPSS Score
Percentile: 7%
VendorProductVersion
linuxlinux_kernel
6.6 ≤
𝑥
< 6.10.13
linuxlinux_kernel
6.11 ≤
𝑥
< 6.11.2
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bullseye
5.10.223-1
not-affected
bookworm
6.1.137-1
not-affected
bullseye (security)
5.10.237-1
fixed
bookworm (security)
6.1.140-1
fixed
trixie
6.12.27-1
fixed
sid
6.12.30-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
oracular
Fixed 6.11.0-18.18
released
noble
Fixed 6.8.0-54.56
released
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
trusty
not-affected
linux-allwinner-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws
oracular
Fixed 6.11.0-1009.10
released
noble
Fixed 6.8.0-1023.25
released
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
trusty
not-affected
linux-aws-5.0
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-aws-5.11
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.13
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.3
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-aws-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-aws-5.8
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-aws-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-1023.25~22.04.1
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-fips
oracular
dne
noble
dne
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
dne
trusty
dne
linux-aws-hwe
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
dne
xenial
not-affected
trusty
dne
linux-azure
oracular
Fixed 6.11.0-1009.9
released
noble
Fixed 6.8.0-1025.30
released
jammy
not-affected
focal
not-affected
bionic
ignored
xenial
not-affected
trusty
not-affected
linux-azure-4.15
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-azure-5.11
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.13
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.3
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-azure-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-azure-5.8
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-1025.30~22.04.1
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-edge
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-azure-fde
oracular
dne
noble
dne
jammy
not-affected
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-fde-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-azure-fde-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-fde-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-fips
oracular
dne
noble
dne
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
dne
trusty
dne
linux-bluefield
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-fips
oracular
dne
noble
dne
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
trusty
dne
linux-gcp
oracular
Fixed 6.11.0-1009.9
released
noble
Fixed 6.8.0-1024.26
released
jammy
not-affected
focal
not-affected
bionic
ignored
xenial
not-affected
trusty
dne
linux-gcp-4.15
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-gcp-5.11
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.13
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.3
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gcp-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-gcp-5.8
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gcp-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-1024.26~22.04.1
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-fips
oracular
dne
noble
dne
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
dne
trusty
dne
linux-gke
oracular
dne
noble
Fixed 6.8.0-1019.23
released
jammy
not-affected
focal
ignored
bionic
dne
xenial
ignored
trusty
dne
linux-gke-4.15
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gke-5.15
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gke-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gkeop
oracular
dne
noble
Fixed 6.8.0-1006.8
released
jammy
not-affected
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-gkeop-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-gkeop-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-hwe
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
not-affected
trusty
dne
linux-hwe-5.11
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.13
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-hwe-5.8
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.11
oracular
dne
noble
not-affected
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-57.59~22.04.1
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-edge
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
ignored
trusty
dne
linux-ibm
oracular
dne
noble
Fixed 6.8.0-1022.22
released
jammy
not-affected
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-ibm-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-ibm-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-intel
oracular
dne
noble
not-affected
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-5.13
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-intel-iot-realtime
oracular
dne
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-iotg
oracular
dne
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-iotg-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-iot
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-kvm
oracular
dne
noble
dne
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
trusty
dne
linux-lowlatency
oracular
Fixed 6.11.0-1010.11
released
noble
Fixed 6.8.0-54.56.1
released
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.11
oracular
dne
noble
not-affected
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-54.56.1~22.04.1
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lts-xenial
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
not-affected
linux-nvidia
oracular
dne
noble
Fixed 6.8.0-1022.25
released
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-1022.25~22.04.2
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-lowlatency
oracular
dne
noble
Fixed 6.8.0-1022.25.2
released
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-tegra
oracular
dne
noble
not-affected
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-tegra-igx
oracular
dne
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
ignored
trusty
dne
linux-oem-5.10
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.13
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.14
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.17
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.6
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.0
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.1
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.11
oracular
dne
noble
Fixed 6.11.0-1015.15
released
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.8
oracular
dne
noble
Fixed 6.8.0-1024.24
released
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oracle
oracular
Fixed 6.11.0-1011.12
released
noble
Fixed 6.8.0-1020.21
released
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
trusty
dne
linux-oracle-5.0
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-oracle-5.11
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oracle-5.13
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oracle-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-oracle-5.3
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-oracle-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-oracle-5.8
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oracle-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oracle-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-1020.21~22.04.1
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-raspi
oracular
Fixed 6.11.0-1008.8
released
noble
Fixed 6.8.0-1019.23
released
jammy
not-affected
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-raspi-5.4
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
not-affected
xenial
dne
trusty
dne
linux-raspi-realtime
oracular
dne
noble
Fixed 6.8.0-2018.19
released
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-raspi2
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
ignored
xenial
ignored
trusty
dne
linux-realtime
oracular
Fixed 6.11.0-1005.5
released
noble
Fixed 6.8.1-1016.17
released
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-riscv
oracular
Fixed 6.11.0-17.17.1
released
noble
Fixed 6.8.0-53.55.1
released
jammy
ignored
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.11
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.15
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.8
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-riscv-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-riscv-6.8
oracular
dne
noble
dne
jammy
Fixed 6.8.0-53.55.1~22.04.1
released
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-starfive-5.19
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-starfive-6.2
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-starfive-6.5
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-xilinx-zynqmp
oracular
dne
noble
dne
jammy
not-affected
focal
not-affected
bionic
dne
xenial
dne
trusty
dne