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 moreaffected: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: vendor fix RHSA-2025:17570
show 10 moreshow fewer
-
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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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_10fixed: 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_2fixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 kernelnot 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
-
- CWE-125 Out-of-bounds Read
- Technology feeds
References
Sources
- CVE List CVE-2022-49985
- NVD CVE-2022-49985
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.