CVE-2026-93191 in Linux
Résumé
par VulDB • 17/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
smack : correction du contexte de tâche incorrect dans smack_msg_queue_msgrcv
La fonction `smack_msg_queue_msgrcv()` vérifie incorrectement les autorisations de la tâche « current » (courante) au lieu de celles de la tâche « target » (cible).
Dans le chemin d'appel système `msgsnd()`, si un récepteur est déjà en attente, l'optimisation `pipelined_send()` est utilisée pour envoyer directement le message à la tâche du récepteur :
ipc/msg.c`pipelined_send(): ` smp_store_release(&msr->r_msg, msg)
Dans ce cas, la tâche « sender » (expéditeur, c'est-à-dire current) effectue la vérification au nom de la tâche « receiver » (récepteur, msr->r_tsk, passée en tant que paramètre 'target') :
ipc/msg.c`pipelined_send(): ` security_msg_queue_msgrcv(,, target := msr->r_tsk,,)
Cependant, `smack_msg_queue_msgrcv()` ignore le paramètre « target » et vérifie la tâche « current » :
smack_msg_queue_msgrcv(…) ` smk_curacc_msq(isp, MAY_READWRITE); // tâche courante (current)
La tâche 'current' peut satisfaire l'exigence de lecture/écriture de `smack_msg_queue_msgrcv`, mais la tâche 'target' (le récepteur) pourrait ne pas y satisfaire ; par conséquent, un récepteur non autorisé reçoit le message, ce qui viole la politique MAC.
Test : 1) créer une file de messages sysv avec l'étiquette « foo » 2) echo "bar foo r" >/smack/load2 3) msgrcv(,,,0,MSG_NOERROR) dans une tâche étiquetée « bar ». La tâche est en attente des messages ... 4) msgsnd() depuis une tâche étiquetée « foo » : la tâche étiquetée « bar » reçoit le message.
Ce correctif résout le problème en vérifiant les autorisations sur la tâche 'target' au lieu de la tâche 'current'.
(2008-02-04, Casey Schaufler)
If you want to get best quality of vulnerability data, you may have to visit VulDB.