Skip to content
Fencer Vulns
high 7.8

CVE-2022-49985 json

bpf: Don't use tnum_range on array range checking for poke descriptors

published 2025-06-18 16 mo ago modified 2026-08-05 3 mo ago also EUVD-2022-55264

cvss
7.8
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.3%
EPSS 0.3% chance of exploitation in 30 days, percentile 18%
public exploits
0
none known

Summary

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

bpf: Don't use tnum_range on array range checking for poke descriptors

Hsin-Wei reported a KASAN splat triggered by their BPF runtime fuzzer which is based on a customized syzkaller:

BUG: KASAN: slab-out-of-bounds in bpf_int_jit_compile+0x1257/0x13f0 Read of size 8 at addr ffff888004e90b58 by task syz-executor.0/1489 CPU: 1 PID: 1489 Comm: syz-executor.0 Not tainted 5.19.0 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x9c/0xc9 print_address_description.constprop.0+0x1f/0x1f0 ? bpf_int_jit_compile+0x1257/0x13f0 kasan_report.cold+0xeb/0x197 ? kvmalloc_node+0x170/0x200 ? bpf_int_jit_compile+0x1257/0x13f0 bpf_int_jit_compile+0x1257/0x13f0 ? arch_prepare_bpf_dispatcher+0xd0/0xd0 ? rcu_read_lock_sched_held+0x43/0x70 bpf_prog_select_runtime+0x3e8/0x640 ? bpf_obj_name_cpy+0x149/0x1b0 bpf_prog_load+0x102f/0x2220 ? __bpf_prog_put.constprop.0+0x220/0x220 ? find_held_lock+0x2c/0x110 ? __might_fault+0xd6/0x180 ? lock_downgrade+0x6e0/0x6e0 ? lock_is_held_type+0xa6/0x120 ? __might_fault+0x147/0x180 __sys_bpf+0x137b/0x6070 ? bpf_perf_link_attach+0x530/0x530 ? new_sync_read+0x600/0x600 ? __fget_files+0x255/0x450 ? lock_downgrade+0x6e0/0x6e0 ? fput+0x30/0x1a0 ? ksys_write+0x1a8/0x260 __x64_sys_bpf+0x7a/0xc0 ? syscall_enter_from_user_mode+0x21/0x70 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7f917c4e2c2d

The problem here is that a range of tnum_range(0, map->max_entries - 1) has limited ability to represent the concrete tight range with the tnum as the set of resulting states from value + mask can result in a superset of the actual intended range, and as such a tnum_in(range, reg->var_off) check may yield true when it shouldn't, for example tnum_range(0, 2) would result in 00XX -> v = 0000, m = 0011 such that the intended set of {0, 1, 2} is here represented by a less precise superset of {0, 1, 2, 3}. As the register is known const scalar, really just use the concrete reg->var_off.value for the upper index check.

Patch / fix

  • Linux Linux 5.10.140, 5.15.64, 5.19.6, 6.0
  • linux Debian 14, Debian 13, Debian 12 6.0.2-1

debian advisories DEBIAN-CVE-2022-49985

  • linux Ubuntu 22.04 LTS 5.15.0-53.59
  • linux-aws Ubuntu 22.04 LTS 5.15.0-1023.27
  • linux-gcp Ubuntu 22.04 LTS 5.15.0-1022.29
  • linux-gke Ubuntu 22.04 LTS 5.15.0-1020.25
  • linux-ibm Ubuntu 22.04 LTS 5.15.0-1018.21
  • linux-kvm Ubuntu 22.04 LTS 5.15.0-1021.26
  • linux-azure Ubuntu 22.04 LTS 5.15.0-1023.29
  • linux-gkeop Ubuntu 22.04 LTS 5.15.0-1008.12

ubuntu advisories UBUNTU-CVE-2022-49985

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel RHEL 8 4.18.0-553.74.1.el8_10
  • perf RHEL 8 4.18.0-553.74.1.el8_10
  • bpftool RHEL 8 4.18.0-553.74.1.el8_10
  • kernel-core RHEL 8 4.18.0-553.74.1.el8_10
  • kernel-tools RHEL 8 4.18.0-553.74.1.el8_10
  • python3-perf RHEL 8 4.18.0-553.74.1.el8_10
  • kernel-modules RHEL 8 4.18.0-553.74.1.el8_10
  • kernel-zfcpdump RHEL 8 4.18.0-553.74.1.el8_10

red hat advisories RHSA-2026:5732RHSA-2026:5693RHSA-2025:22752RHSA-2025:18043RHSA-2025:17570RHSA-2025:15471

  • kernel-64kb SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS, SLE High Performance Computing 15 SP4-ESPOS 5.14.21-150400.24.170.2
  • kernel-syms SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS +3 more 5.14.21-150400.24.170.1
  • kernel-source SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS +3 more 5.14.21-150400.24.170.1
  • kernel-default SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE Micro 5.4 +6 more 5.14.21-150400.24.170.2
  • kernel-zfcpdump SLES 15 SP4-LTSS, Manager Server 4.3 5.14.21-150400.24.170.2
  • kernel-obs-build SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE High Performance Computing 15 SP4-LTSS +1 more 5.14.21-150400.24.170.2
  • kernel-default-base SLES for SAP 15 SP4, SLES 15 SP4-LTSS, SLE Micro 5.4 +5 more 5.14.21-150400.24.170.2.150400.24.86.2
  • kernel-rt SLE Micro 5.4, SLE Micro 5.3 5.14.21-150400.15.124.1

suse advisories SUSE-SU-2025:02537-1SUSE-SU-2025:02322-1SUSE-SU-2025:02321-1SUSE-SU-2025:02320-1SUSE-SU-2025:02308-1SUSE-SU-2025:02264-1

  • kernel AlmaLinux 8 4.18.0-553.74.1.el8_10
  • perf AlmaLinux 8 4.18.0-553.74.1.el8_10
  • bpftool AlmaLinux 8 4.18.0-553.74.1.el8_10
  • kernel-core AlmaLinux 8 4.18.0-553.74.1.el8_10
  • kernel-tools AlmaLinux 8 4.18.0-553.74.1.el8_10
  • python3-perf AlmaLinux 8 4.18.0-553.74.1.el8_10
  • kernel-modules AlmaLinux 8 4.18.0-553.74.1.el8_10
  • kernel-zfcpdump AlmaLinux 8 4.18.0-553.74.1.el8_10

almalinux advisories ALSA-2025:15471ALSA-2025:15472

  • kernel Rocky Linux 8 4.18.0-553.74.1.el8_10

rocky linux advisories RLSA-2025:15471

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2022-49985 updated cvss 7.0

kernel: bpf: Don't use tnum_range on array range checking for poke descriptors

  • Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 more
    affected: no fix available
  • Red Hat Enterprise Linux AppStream (v. 9) perf 5.14.0-284.11.1.el9_2, rtla 5.14.0-284.11.1.el9_2, kernel-devel-matched 5.14.0-284.11.1.el9_2, kernel-64k-devel-matched 5.14.0-284.11.1.el9_2, kernel-debug-devel-matched 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-s390x 5.14.0-284.11.1.el9_2, +5 more
    fixed: vendor fix RHSA-2023:2458
  • Red Hat Enterprise Linux AppStream E4S (v.9.0) perf 5.14.0-70.171.1.el9_0, kernel-devel-matched 5.14.0-70.171.1.el9_0, kernel-debug-devel-matched 5.14.0-70.171.1.el9_0, kernel-debuginfo-common-s390x 5.14.0-70.171.1.el9_0, kernel-zfcpdump-devel-matched 5.14.0-70.171.1.el9_0, kernel-debuginfo-common-x86_64 5.14.0-70.171.1.el9_0, +2 more
    fixed: vendor fix RHSA-2026:5693
  • Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.74.1.el8_10, kernel 4.18.0-553.74.1.el8_10, bpftool 4.18.0-553.74.1.el8_10, kernel-core 4.18.0-553.74.1.el8_10, kernel-tools 4.18.0-553.74.1.el8_10, python3-perf 4.18.0-553.74.1.el8_10, +15 more
    fixed: vendor fix RHSA-2025:15471
  • Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.0.0-284.11.1.el9_2, kernel 5.14.0-284.11.1.el9_2, kernel-64k 5.14.0-284.11.1.el9_2, kernel-core 5.14.0-284.11.1.el9_2, kernel-tools 5.14.0-284.11.1.el9_2, python3-perf 5.14.0-284.11.1.el9_2, +28 more
    fixed: vendor fix RHSA-2023:2458
  • Red Hat Enterprise Linux BaseOS AUS (v.8.4) perf 4.18.0-305.179.1.el8_4, kernel 4.18.0-305.179.1.el8_4, bpftool 4.18.0-305.179.1.el8_4, kernel-core 4.18.0-305.179.1.el8_4, kernel-tools 4.18.0-305.179.1.el8_4, python3-perf 4.18.0-305.179.1.el8_4, +8 more
    fixed: vendor fix RHSA-2025:22752
  • Red Hat Enterprise Linux BaseOS AUS (v.8.6) perf 4.18.0-372.164.1.el8_6, kernel 4.18.0-372.164.1.el8_6, bpftool 4.18.0-372.164.1.el8_6, kernel-core 4.18.0-372.164.1.el8_6, kernel-tools 4.18.0-372.164.1.el8_6, python3-perf 4.18.0-372.164.1.el8_6, +8 more Red Hat Enterprise Linux BaseOS E4S (v.8.6) perf 4.18.0-372.164.1.el8_6, kernel 4.18.0-372.164.1.el8_6, bpftool 4.18.0-372.164.1.el8_6, kernel-core 4.18.0-372.164.1.el8_6, kernel-tools 4.18.0-372.164.1.el8_6, python3-perf 4.18.0-372.164.1.el8_6, +15 more
    fixed: vendor fix RHSA-2025:18043
  • Red Hat Enterprise Linux BaseOS E4S (v.8.8) perf 4.18.0-477.114.1.el8_8, kernel 4.18.0-477.114.1.el8_8, bpftool 4.18.0-477.114.1.el8_8, kernel-core 4.18.0-477.114.1.el8_8, kernel-tools 4.18.0-477.114.1.el8_8, python3-perf 4.18.0-477.114.1.el8_8, +9 more
    fixed: vendor fix RHSA-2025:17570
show 10 more
  • Red Hat Enterprise Linux BaseOS E4S (v.9.0) kernel 5.14.0-70.171.1.el9_0, bpftool 5.14.0-70.171.1.el9_0, kernel-core 5.14.0-70.171.1.el9_0, kernel-tools 5.14.0-70.171.1.el9_0, python3-perf 5.14.0-70.171.1.el9_0, kernel-modules 5.14.0-70.171.1.el9_0, +14 more
    fixed: vendor fix RHSA-2026:5693
  • Red Hat Enterprise Linux BaseOS EUS EXTENSION (v.8.4) perf 4.18.0-305.179.1.el8_4, kernel 4.18.0-305.179.1.el8_4, bpftool 4.18.0-305.179.1.el8_4, kernel-core 4.18.0-305.179.1.el8_4, kernel-tools 4.18.0-305.179.1.el8_4, python3-perf 4.18.0-305.179.1.el8_4, +8 more
    fixed: vendor fix RHSA-2025:22752
  • Red Hat Enterprise Linux BaseOS TUS (v.8.6) perf 4.18.0-372.164.1.el8_6, kernel 4.18.0-372.164.1.el8_6, bpftool 4.18.0-372.164.1.el8_6, kernel-core 4.18.0-372.164.1.el8_6, kernel-tools 4.18.0-372.164.1.el8_6, python3-perf 4.18.0-372.164.1.el8_6, +8 more
    fixed: vendor fix RHSA-2025:18043
  • Red Hat Enterprise Linux BaseOS TUS (v.8.8) perf 4.18.0-477.114.1.el8_8, kernel 4.18.0-477.114.1.el8_8, bpftool 4.18.0-477.114.1.el8_8, kernel-core 4.18.0-477.114.1.el8_8, kernel-tools 4.18.0-477.114.1.el8_8, python3-perf 4.18.0-477.114.1.el8_8, +8 more
    fixed: vendor fix RHSA-2025:17570
  • Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.74.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.74.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.74.1.el8_10
    fixed: vendor fix RHSA-2025:15471
  • Red Hat Enterprise Linux CRB (v. 9) kernel-debuginfo-common-s390x 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-x86_64 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-aarch64 5.14.0-284.11.1.el9_2, kernel-debuginfo-common-ppc64le 5.14.0-284.11.1.el9_2
    fixed: vendor fix RHSA-2023:2458
  • Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-kvm 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-core 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-modules 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-debug-kvm 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-debug-core 4.18.0-553.74.1.rt7.415.el8_10, +4 more
    fixed: vendor fix RHSA-2025:15472
  • Red Hat Enterprise Linux NFV E4S (v.9.0) kernel-rt 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-kvm 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-core 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-modules 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-debug-kvm 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-debug-core 5.14.0-70.171.1.rt21.243.el9_0, +4 more Red Hat Enterprise Linux Real Time E4S (v.9.0) kernel-rt 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-core 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-modules 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-debug-core 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-debug-modules 5.14.0-70.171.1.rt21.243.el9_0, kernel-rt-modules-extra 5.14.0-70.171.1.rt21.243.el9_0, +2 more
    fixed: vendor fix RHSA-2026:5732
  • Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-core 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-modules 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-debug-core 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-debug-modules 4.18.0-553.74.1.rt7.415.el8_10, kernel-rt-modules-extra 4.18.0-553.74.1.rt7.415.el8_10, +2 more
    fixed: vendor fix RHSA-2025:15472
  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 10 kernel
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

Exploit prediction

0.26% chance of exploitation in the next 30 days, higher than 18% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
NVD 3.1 7.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H

Affected products

  • Linux Linux

Classification

Weakness
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.