CVE-2022-50168

CVE-2022-50168

High · published June 18, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
16.3
In the wild
Unconfirmed
What it is

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

bpf, x86: fix freeing of not-finalized bpf_prog_pack

syzbot reported a few issues with bpf_prog_pack [1], [2]. This only happens

with multiple subprogs. In jit_subprogs(), we first call bpf_int_jit_compile()

on each sub program. And then, we call it on each sub program again. jit_data

is not freed in the first call of bpf_int_jit_compile(). Similarly we don't

call bpf_jit_binary_pack_finalize() in the first call of bpf_int_jit_compile().

If bpf_int_jit_compile() failed for one sub program, we will call

bpf_jit_binary_pack_finalize() for this sub program. However, we don't have a

chance to call it for other sub programs. Then we will hit "goto out_free" in

jit_subprogs(), and call bpf_jit_free on some subprograms that haven't got

bpf_jit_binary_pack_finalize() yet.

At this point, bpf_jit_binary_pack_free() is called and the whole 2MB page is

freed erroneously.

Fix this with a custom bpf_jit_free() for x86_64, which calls

bpf_jit_binary_pack_finalize() if necessary. Also, with custom

bpf_jit_free(), bpf_prog_aux->use_bpf_prog_pack is not needed any more,

remove it.

[1] https://syzkaller.appspot.com/bug?extid=2f649ec6d2eea1495a8f

[2] https://syzkaller.appspot.com/bug?extid=87f65c75f4a72db05445

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00256 · 16.3th percentile
Published
2025-06-18T15:15Z
Affected products (2)
ProductVersionsFixed in
linux/linux_kernel≥ 5.18, < 5.18.185.18.18
linux/linux_kernel≥ 5.19, < 5.19.25.19.2
References (3)
EPSS history
Timeline
  • 18 JUN 11:03Z
    bpf, x86: fix freeing of not-finalized bpf_prog_pack
    cvelistv5