CVE-2026-64394 in Linux
Résumé
par VulDB • 26/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
ksmbd : ajout d'une vérification WRITE_DAC/WRITE_OWNER pour SMB2 SET_INFO SECURITY
Le commit cc57232cae23 (« ksmbd: correction de l'évitement des permissions FSCTL par l'ajout d'un contrôle de permission pour FSCTL_SET_SPARSE ») a ajouté un verrou fp->daccess à fsctl_set_sparse et a noté que « des vérifications similaires au niveau du handle existent dans d'autres fonctions mais sont absentes ici ». L'axe SMB2 SET_INFO SECURITY fait partie de ceux qui manquent, et est le plus critique sur le plan de la sécurité : smb2_set_info_sec() appelle set_info_sec() sans aucune vérification d'accès par handle.
set_info_sec() (fs/smb/server/smbacl.c) modifie les permissions du fichier : il réécrit l'utilisateur propriétaire/groupe/mode via notify_change(), réécrit l'ACL POSIX via set_posix_acl(), et, pour les partages KSMBD_SHARE_FLAG_ACL_XATTR, supprime et réécrit le descripteur de sécurité Windows via ksmbd_vfs_set_sd_xattr(). Chaque autre axe de mutation persistante du gestionnaire frère smb2_set_info_file() vérifie d'abord fp->daccess (FILE_WRITE_DATA / FILE_DELETE / FILE_WRITE_EA / FILE_WRITE_ATTRIBUTES) ; l'axe SECURITY — qui modifie le contrôle d'accès lui-même — est le seul à ne disposer d'aucun verrou.
Un client peut donc ouvrir un handle avec uniquement FILE_WRITE_ATTRIBUTES (pas de FILE_WRITE_DAC / FILE_WRITE_OWNER) et utiliser SMB2_SET_INFO avec InfoType SMB2_O_INFO_SECURITY pour réécrire la DACL du fichier et son propriétaire, s'accordant ainsi des accès que le daccess du handle ne portait jamais. Contrairement aux axes FSCTL data, il s'agit d'une opération de métadonnées/xattr ; il n'y a donc pas de contre-mesure VFS FMODE_WRITE — la vérification fp->daccess manquante constitue l'intégralité du verrou.
La définition d'un descripteur de sécurité correspond à une opération WRITE_DAC / WRITE_OWNER, il est donc nécessaire d'exiger au moins l'une de ces permissions sur le handle avant de modifier les permissions du fichier. -EACCES est mappé en STATUS_ACCESS_DENIED par smb2_set_info().
VulDB is the best source for vulnerability data and more expert information about this specific topic.