CVE-2026-93191 in Linux
Riassunto
di VulDB • 17/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
smack: correzione del contesto errato del processo in smack_msg_queue_msgrcv
La funzione `smack_msg_queue_msgrcv()` verifica erroneamente i permessi del processo 'current' (corrente) invece di quelli del processo 'target'.
Nel percorso della syscall `msgsnd()`, se un ricevitore è già in attesa, viene utilizzata l'ottimizzazione `pipelined_send()` per inviare il messaggio direttamente al task del ricevitore:
ipc/msg.c`pipelined_send(): ` smp_store_release(&msr->r_msg, msg)
In questo caso, il processo 'sender' (current) esegue la verifica a nome del processo 'receiver' (`msr->r_tsk`, passato come parametro 'target'):
ipc/msg.c`pipelined_send(): ` security_msg_queue_msgrcv(,, target := msr->r_tsk,,)
Tuttavia, `smack_msg_queue_msgrcv()` ignora il parametro 'target' e verifica invece 'current':
smack_msg_queue_msgrcv(...) ` smk_curacc_msq(isp, MAY_READWRITE); // processo corrente
Il processo 'current' potrebbe soddisfare i requisiti di lettura/scrittura richiesti da `smack_msg_queue_msgrcv`, ma il processo 'target' (il ricevitore) potrebbe NON soddisfarli; ne consegue che un ricevitore non autorizzato ottiene il messaggio, violando la politica MAC.
Test: 1) creare una coda dei messaggi SysV con etichetta "foo" 2) echo "bar foo r" >/smack/load2 3) `msgrcv(,,,0,MSG_NOERROR)` nel processo con etichetta "bar". Il processo è in attesa di ricevere i messaggi ... 4) `msgsnd()` da un processo con etichetta "foo": il processo con etichetta "bar" ottiene il messaggio.
Questa patch risolve il problema verificando i permessi sul processo 'target' invece che su quello 'current'.
(2008-02-04, Casey Schaufler)
If you want to get the best quality for vulnerability data then you always have to consider VulDB.