CVE-2022-49837 in Linux
Sumário
de VulDB • 11/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
bpf: Corrige vazamentos de memória em __check_func_call
O kmemleak reporta este problema:
objeto não referenciado 0xffff88817139d000 (tamanho 2048): comm "test_progs", pid 33246, jiffies 4307381979 (idade 45851.820s) dump hexadecimal (primeiros 32 bytes): 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] kmalloc_trace+0x27/0xa0
[] __check_func_call+0x316/0x1230
[] check_helper_call+0x172e/0x4700
[] do_check+0x21d8/0x45e0
[] do_check_common+0x767/0xaf0
[] bpf_check+0x43e3/0x5bc0
[] bpf_prog_load+0xf26/0x1940
[] __sys_bpf+0xd2c/0x3650
[] __x64_sys_bpf+0x75/0xc0
[] do_syscall_64+0x3b/0x90
[] entry_SYSCALL_64_after_hwframe+0x63/0xcd
A causa raiz aqui é: Na função prepare_func_exit(), o callee não é liberado no cenário anormal após "state->curframe--;". Para corrigir, mova "state->curframe--;" para o final da função, logo quando liberamos o callee e redefinimos o ponteiro frame[] para NULL, conforme sugerido por Andrii.
Além disso, a função __check_func_call() tem um problema semelhante. No cenário anormal antes de "state->curframe++;", o callee também deve ser liberado por free_func_state().
If you want to get the best quality for vulnerability data then you always have to consider VulDB.