Vulnérabilités dans le noyau Linux exploitées à distance via Bluetooth

Une vulnérabilité a été identifiée dans le noyau Linux (CVE-2022-42896), qui peut potentiellement être exploitée pour organiser une exécution de code à distance au niveau du noyau en envoyant un paquet L2CAP spécialement formé via Bluetooth. De plus, une autre problématique similaire (CVE-2022-42895) a été détectée dans le gestionnaire L2CAP, pouvant entraîner une fuite du contenu de la mémoire du noyau dans les paquets contenant des informations de configuration. La première vulnérabilité est présente depuis août 2014 (noyau 3.16), tandis que la seconde l'est depuis octobre 2011 (noyau 3.0). Les vulnérabilités ont été corrigées dans les versions du noyau Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 et 5.15.78. Les correctifs peuvent être suivis sur les pages suivantes : Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Pour démontrer la possibilité d'attaques à distance, des prototypes d'exploits fonctionnant sous Ubuntu 22.04 ont été publiés. Pour réaliser l'attaque, l'attaquant doit se trouver à portée de Bluetooth — aucun appairage préalable n'est requis, mais Bluetooth doit être activé sur l'ordinateur. Pour l'attaque, il suffit de connaître l'adresse MAC de l'appareil de la victime, qui peut être déterminée par sniffing ou calculée sur certains appareils à partir de l'adresse MAC du Wi-Fi.

La première vulnérabilité (CVE-2022-42896) est causée par un accès à une zone mémoire déjà libérée (use-after-free) dans l'implémentation des fonctions l2cap_connect et l2cap_le_connect_req — après la création d'une connexion par un appel callback à new_connection, aucune protection n'était mise en place, mais un minuteur (__set_chan_timer) était configuré, expirant après un délai pour appeler la fonction l2cap_chan_timeout et nettoyer le canal sans vérifier la fin d'utilisation du canal dans les fonctions l2cap_le_connect*.

Par défaut, le délai d'expiration est de 40 secondes et il était supposé qu'un état de concurrence ne pouvait pas survenir avec un tel délai, mais il s'est avéré qu'en raison d'une autre erreur dans le gestionnaire SMP, il était possible de provoquer un appel instantané du minuteur et d'atteindre un état de concurrence. Le problème dans l2cap_le_connect_req peut entraîner une fuite de mémoire du noyau, tandis que dans l2cap_connect, il peut conduire à l'écriture dans la mémoire et à l'exécution de son propre code. La première variante d'attaque peut être réalisée en utilisant Bluetooth LE 4.0 (depuis 2009), la seconde avec Bluetooth BR/EDR 5.2 (depuis 2020).

La deuxième vulnérabilité (CVE-2022-42895) est causée par une fuite de données résiduelles de la mémoire dans la fonction l2cap_parse_conf_req, ce qui peut être utilisé pour obtenir à distance des informations sur les pointeurs vers des structures noyau en envoyant des requêtes de configuration spécialement formatées. Dans la fonction l2cap_parse_conf_req, une structure l2cap_conf_efs était utilisée, pour laquelle l'initialisation de la mémoire allouée n'était pas effectuée, et grâce à des manipulations avec le drapeau FLAG_EFS_ENABLE, il était possible d'intégrer des données anciennes du tas dans le paquet. Le problème se manifeste uniquement dans les systèmes où le noyau est compilé avec l'option CONFIG_BT_HS (par défaut désactivée, mais activée dans certaines distributions, comme Ubuntu). Pour réussir une attaque, le paramètre HCI_HS_ENABLED doit également être défini sur true via l'interface de gestion (par défaut non utilisé).

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster