Une vulnérabilité a été identifiée dans le code du sous-système iSCSI du noyau Linux (CVE-2021-27365), permettant à un utilisateur local non privilégié d'exécuter du code au niveau du noyau et d'obtenir des privilèges root dans le système. Un prototype fonctionnel de l'exploit est disponible pour les tests. La vulnérabilité a été corrigée dans les mises à jour du noyau Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 et 4.4.260. Les mises à jour des paquets avec le noyau sont disponibles dans les distributions Debian, Ubuntu, SUSE/openSUSE, Arch Linux et Fedora. Pour RHEL, les correctifs n'ont pas encore été publiés.
Le problème est causé par une erreur dans la fonction iscsi_host_get_param() du module libiscsi, introduite en 2006 lors du développement du sous-système iSCSI. En raison de l'absence de vérifications adéquates de taille, certains attributs de chaîne iSCSI, tels que hostname ou username, peuvent dépasser la valeur PAGE_SIZE (4 Ko). La vulnérabilité peut être exploitée en envoyant des messages Netlink par un utilisateur non privilégié, définissant les attributs iSCSI à des valeurs dépassant PAGE_SIZE. Lors de la lecture des données de ces attributs via sysfs ou seqfs, un code est appelé pour transmettre les attributs à la fonction sprintf pour les copier dans un tampon de taille PAGE_SIZE.
L'exploitation de la vulnérabilité dans les distributions dépend du support du chargement automatique du module de noyau scsi_transport_iscsi lors de la tentative de création d'une socket NETLINK_ISCSI. Dans les distributions où ce module est chargé automatiquement, l'attaque peut être réalisée indépendamment de l'utilisation de la fonctionnalité iSCSI. De plus, pour réussir à appliquer l'exploit, il est nécessaire d'enregistrer au moins un transport iSCSI. Pour cela, le module de noyau ib_iser, qui est chargé automatiquement lors de la tentative de création d'une socket NETLINK_RDMA par un utilisateur non privilégié, peut être utilisé.
Le chargement automatique des modules nécessaires à l'exploitation des vulnérabilités est pris en charge dans CentOS 8, RHEL 8 et Fedora lors de l'installation du paquet rdma-core, qui est une dépendance pour certains paquets populaires et qui est installé par défaut dans les configurations pour les stations de travail, les systèmes serveurs avec interface graphique et les environnements d'hébergement virtuel. En revanche, rdma-core n'est pas installé lors de l'utilisation d'une version serveur fonctionnant uniquement en mode console, et lors de l'installation d'une image d'installation minimale. Par exemple, le paquet fait partie de l'installation de base de Fedora 31 Workstation, mais n'est pas inclus dans Fedora 31 Server. Debian et Ubuntu sont moins concernés par ce problème, car le paquet rdma-core charge les modules du noyau nécessaires à l'attaque uniquement en présence de matériel RDMA.

Comme solution de contournement, vous pouvez interdire le chargement automatique du module libiscsi : echo «install libiscsi /bin/true» >> /etc/modprobe.d/disable-libiscsi.conf
De plus, deux vulnérabilités moins graves ont été corrigées dans le sous-système iSCSI, qui pourraient entraîner une fuite de données depuis le noyau : CVE-2021-27363 (fuite d'informations sur le descripteur de transport iSCSI via sysfs) et CVE-2021-27364 (lecture en dehors des limites du tampon). Ces vulnérabilités peuvent être exploitées pour interagir via un socket netlink avec le sous-système iSCSI sans les privilèges nécessaires. Par exemple, un utilisateur sans privilèges peut se connecter à iSCSI et envoyer la commande «end a session» pour interrompre une session.
Source : opennet.ru
