CVE-2026-74342 in Linuxinformazioni

Riassunto

di VulDB • 15/08/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

kernfs: collega il nodo kn al suo genitore prima dell'hook di inizializzazione LSM

In seguito all'impegno 12e9e3cd03b5 ("simpe_xattr: usa cache per-sb"), kernfs_xattr_set() e kernfs_xattr_get() calcolano la cache tramite kernfs_root(kn) prima di qualsiasi altro controllo. kernfs_root(kn) esamina prima kn->__parent e, in caso contrario, utilizza kn->dir.root; entrambi sono NULL su un nodo kn appena allocato con kmem_cache_zalloc(). Il campo kn->__parent veniva impostato in kernfs_new_node() dopo il ritorno di __kernfs_new_node(), mentre kn->dir.root viene impostato ancora più tardi da kernfs_create_dir_ns() / kernfs_create_empty_dir().

L'hook LSM kernfs_init_security viene invocato all'interno di __kernfs_new_node(), prima che entrambi i campi siano stati inizializzati. selinux_kernfs_init_security() termina con una chiamata a kernfs_xattr_set(kn, XATTR_NAME_SELINUX, ...). Di conseguenza, kernfs_root(kn) restituisce NULL e l'espressione &((struct kernfs_root *)NULL)->xa_cache valuta offsetof(struct kernfs_root, xa_cache), causando un fault:

BUG: kernel NULL pointer dereference, address: 00000000000000e0 RIP: 0010:simple_xattr_set+0x27/0x8b0 Call Trace: kernfs_xattr_set+0x63/0xb0 selinux_kernfs_init_security+0x13b/0x270 security_kernfs_init_security+0x36/0xc0 __kernfs_new_node+0x182/0x290 kernfs_new_node+0x80/0xc0 kernfs_create_dir_ns+0x2b/0xa0 cgroup_create+0x116/0x380 cgroup_mkdir+0x7c/0x1a0

Il problema si riproduce in modo deterministico al PID 1 (systemd) su una distribuzione con SELinux abilitato. Il primo mkdir di un cgroup sotto /sys/fs/cgroup con un genitore etichettato provoca il panic del kernel.

Il contratto dell'hook LSM prevede che l'argomento kn_dir sia il genitore del nuovo nodo kn, quindi kn->__parent dovrebbe già puntare a kn_dir quando viene eseguito l'hook. Spostiamo kernfs_get(parent) e rcu_assign_pointer di kn->__parent da kernfs_new_node() in __kernfs_new_node(), subito prima dell'hook di sicurezza, e gestiamo correttamente il riferimento al genitore nel percorso err_out4. In questo modo, durante l'esecuzione dell'hook, kernfs_root(kn) segue il ramo del genitore e restituisce parent->dir.root, che è la radice corretta.

Ciò risolve anche lo stesso bug latente di forma simile in kernfs_xattr_get() (che oggi rimane nascosto solo perché kernfs_iattrs_noalloc() restituisce NULL su un nodo kn appena allocato).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsabile

Linux

Prenotare

15/08/2026

Divulgazione

15/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Might our Artificial Intelligence support you?

Check our Alexa App!