What’s Vulnerable › Vulnerabilities
CVE-2022-50168: bpf, x86: fix freeing of not-finalized bpf_prog_pack
- Severity: high (CVSS 7.8 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.3% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2025-06-18 · updated 2026-10-15
Description
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
Affected products
- Linux kernel: from 5.18 before 5.18.18; from 5.19 before 5.19.2 — fixed in 5.18.18, 5.19.2
How to fix
Upgrade to a fixed version: Linux kernel 5.18.18, 5.19.2. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/1d5f82d9dd477d5c66e0214a68c3e4f308eadd6d
- https://git.kernel.org/stable/c/60e66074812dde9cde3d99cdd3caa9e40f1a4516
- https://git.kernel.org/stable/c/f91ce608a79c0db3e72bd63c23e011a9ebc31505
Get alerted when CVE-2022-50168 or the next vulnerability affects your stack