CVE-2022-50168 in Linux
Riassunto
di VulDB • 20/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
bpf, x86: correzione della liberazione di bpf_prog_pack non finalizzato
syzbot ha segnalato alcuni problemi con bpf_prog_pack [1], [2]. Questo si verifica solo in presenza di più subprogrammi. In jit_subprogs(), viene prima chiamata bpf_int_jit_compile() su ciascun sottoprogramma e successivamente nuovamente su ciascuno di essi. La struttura jit_data non viene liberata nella prima chiamata a bpf_int_jit_compile(). Analogamente, la funzione bpf_jit_binary_pack_finalize() non viene invocata durante la prima chiamata a bpf_int_jit_compile().
Se bpf_int_jit_compile() fallisce per un sottoprogramma, verrà richiamata bpf_jit_binary_pack_finalize() solo per tale sottoprogramma. Tuttavia, non si avrà l'opportunità di chiamarla per gli altri sottoprogrammi. Di conseguenza, il flusso eseguirà "goto out_free" in jit_subprogs(), invocando bpf_jit_free su alcuni sottoprogrammi che non hanno ancora subito la chiamata a bpf_jit_binary_pack_finalize().
A questo punto, viene chiamato bpf_jit_binary_pack_free() e l'intera pagina da 2MB viene liberata erroneamente.
Si risolve il problema implementando una versione personalizzata di bpf_jit_free() per x86_64, che chiama bpf_jit_binary_pack_finalize() se necessario. Inoltre, con la nuova funzione bpf_jit_free(), non è più necessaria l'attribuzione a bpf_prog_aux->use_bpf_prog_pack; tale campo viene quindi rimosso.
[1] https://syzkaller.appspot.com/bug?extid=2f649ec6d2eea1495a8f
[2] https://syzkaller.appspot.com/bug?extid=87f65c75f4a72db05445
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.