CVE-2021-47488 in Linuxinformazioni

Riassunto

di VulDB • 17/06/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

cgroup: Correzione della memory leak causata dalla mancanza di cgroup_bpf_offline

Abilitando CONFIG_CGROUP_BPF, kmemleak può essere osservato eseguendo i comandi seguenti:

$mount -t cgroup -o none,name=foo cgroup cgroup/ $umount cgroup/

oggetto non referenziato 0xc3585c40 (dimensione 64): comm "mount", pid 425, jiffies 4294959825 (età 31.990s) dump esadecimale (primi 32 byte): 01 00 00 80 84 8c 28 c0 00 00 00 00 00 00 00 00 ......(......... 00 00 00 00 00 00 00 00 6c 43 a0 c3 00 00 00 00 ........lC...... backtrace: [] cgroup_bpf_inherit+0x44/0x24c
[] cgroup_setup_root+0x174/0x37c
[] cgroup1_get_tree+0x2c0/0x4a0
[] vfs_get_tree+0x24/0x108
[] path_mount+0x384/0x988
[] do_mount+0x64/0x9c
[] sys_mount+0xfc/0x1f4
[] ret_fast_syscall+0x0/0x48
[] 0xbeb4daa8

Questo accade perché, a partire dal commit 2b0d3d3e4fcf ("percpu_ref: reduce memory footprint of percpu_ref in fast path"), root_cgrp->bpf.refcnt.data viene allocato dalla funzione percpu_ref_init in cgroup_bpf_inherit, che è chiamata da cgroup_setup_root durante il mount, ma non viene liberata insieme a root_cgrp durante l'umount. L'aggiunta di cgroup_bpf_offline, che chiama percpu_ref_kill su cgroup_kill_sb, può liberare root_cgrp->bpf.refcnt.data nel percorso umount.

Questo patch corregge anche il commit 4bfc0bb2c60e ("bpf: decouple the lifetime of cgroup_bpf from cgroup itself"). È necessario un cgroup_bpf_offline per eseguire una pulizia che liberi le risorse allocate da cgroup_bpf_inherit in cgroup_setup_root.

All'interno di cgroup_bpf_offline, cgroup_get() è all'inizio e cgroup_put è alla fine di cgroup_bpf_release, che viene chiamato da cgroup_bpf_offline. Pertanto, cgroup_bpf_offline può mantenere l'equilibrio del refcount di cgroup.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Fonti

Interested in the pricing of exploits?

See the underground prices here!