Une vulnérabilité dans le protocole réseau CAN BCM a permis une élévation des privilèges dans le noyau Linux 

Le jour d'hier des informations ont été publiées sur une vulnérabilité dans le noyau Linux et qui est déjà catalogué comme CVE-2021-3609. Cette vulnérabilité permet à un utilisateur local d'élever ses privilèges sur le système en raison d'une condition de concurrence dans la mise en œuvre du protocole CAN BCM et se manifestant dans les versions 2.6.25 à 5.13-rc6 du noyau Linux.

La décision profite parce que le Le protocole CAN BCM vous permet d'enregistrer votre propre gestionnaire de messages du réseau (CAN) du contrôleur et le connecter à une prise réseau spécifique. Lorsqu'un message entrant arrive, la fonction est appelée bcm_rx_handler () un attaquant peut profiter d'une condition de concurrence et forcer la fermeture du socket réseau lors de l'exécution bcm_rx_handler ().

Le problème vient quand la prise est fermée et la fonction s'appelle bcm_release (), dans laquelle la mémoire allouée aux structures est libérée bcm_op et bcm_sock, qui continuent à être utilisés dans le gestionnaire bcm_rx_handler () qui est toujours en cours d'exécution, il se produit ainsi une situation qui conduit à accéder à un bloc mémoire déjà libéré (use-after-free).

Il s'agit d'une annonce du bogue récemment signalé (CVE-2021-3609) dans le protocole réseau CAN BCM dans le noyau Linux allant de la version 2.6.25 à la ligne principale 5.13-rc6.
La vulnérabilité est une condition de concurrence dans net/can/bcm.c qui permet une élévation des privilèges à root. Le problème a été initialement signalé par syzbot et Norbert Slusarek s'est avéré exploitable.

L'attaque se résume à ouvrir deux sockets CAN BCM et à les lier à l'interface vcan. Dans le premier connecteur, vous appelez envoyermsg () avec l'indicateur RX_SETUP pour configurer le contrôleur pour les messages CAN entrants et sur le deuxième connecteur, vous appelez envoyermsg () pour envoyer un message au premier connecteur.

Après l'arrivée du message, l'appel bcm_rx_handler() est déclenché et l'attaquant prend le bon moment et ferme le premier socket, qui conduit au lancement de bcm_release () et le lancement des structures bcm_op et bcm_sock, bien que le travail de bcm_rx_handler () il n'est pas encore terminé.

En manipulant le contenu de bcm_sock, un attaquant peut outrepasser un pointeur vers la fonction sk-> sk_data_ready (sk), rediriger l'exécution et, en utilisant des techniques de programmation orientée retour (ROP), outrepasser le paramètre modprobe_path et faire exécuter son code en tant que root .

Lorsqu'il utilise la technique ROP, l'attaquant n'essaie pas de mettre son code en mémoire de, mais il fonctionne sur les morceaux de notice machine déjà disponible dans les bibliothèques chargées, se terminant par une instruction de retour de contrôle (en règle générale, ce sont la fin des fonctions de la bibliothèque).

Les autorisations requises pour mener une attaque peuvent être acquises par un utilisateur non privilégié dans des conteneurs créés sur des systèmes avec des espaces de noms d'utilisateur activés. Par exemple, les espaces de noms d'utilisateurs sont inclus par défaut dans Ubuntu et Fedora, mais ne sont pas activés dans Debian et RHEL.

Ma tentative d'exploit se concentre sur les noyaux avec la version> = 5.4-rc1 du commit bf74aa86e111. Je n'ai pas enquêté sur l'exploitation de noyaux antérieurs à la version 5.4-rc1 à l'aide de tasklets, mais l'exploitation de noyaux plus anciens semble également possible. 

Il est mentionné que le chercheur qui a identifié la vulnérabilité a pu préparer un exploit pour obtenir les droits root sur les systèmes avec des noyaux à partir de la version 5.4 et ultérieure, y compris la possibilité d'une attaque réussie sur Ubuntu 20.04.02 LTS.

Le travail de l'exploit se réduit à construire une chaîne d'appels à des blocs similaires ("gadgets") pour obtenir la fonctionnalité requise. L'attaque nécessite un accès pour créer des sockets CAN et une interface réseau vcan configurée.

Enfin il est mentionné que le problème persiste sur la plupart des distributions, mais ce n'est qu'une question de jours avant que les correctifs correspondants ne soient publiés.

Si cela vous intéresse d'en savoir plus, vous pouvez consulter le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.