Vulnérabilité dans l'implémentation du socket AF_PACKET du noyau Linux

Trois ans après la vague de vulnérabilités (1, 2, 3, 4, 5) dans le sous-système AF_PACKET du noyau Linux identifié encore un problème (CVE-2020-14386), permettant à un utilisateur local non privilégié d'exécuter du code en tant que root ou de quitter des conteneurs isolés s'il dispose d'un accès root.

La création d'un socket AF_PACKET et l'exploitation de la vulnérabilité nécessitent les privilèges CAP_NET_RAW. Cependant, l'autorisation spécifiée peut être obtenue par un utilisateur non privilégié dans des conteneurs créés sur des systèmes avec la prise en charge des espaces de noms utilisateur activée. Par exemple, les espaces de noms utilisateur sont activés par défaut sur Ubuntu et Fedora, mais pas sur Debian et RHEL. Sur Android, le processus mediaserver a le droit de créer des sockets AF_PACKET, via lesquelles la vulnérabilité peut être exploitée.

La vulnérabilité est présente dans la fonction tpacket_rcv et est provoquée par une erreur de calcul de la variable netoff. Un attaquant peut créer des conditions dans lesquelles la variable netoff est écrite à une valeur inférieure à la variable maclen, ce qui provoquera un débordement lors du calcul de "macoff = netoff - maclen" et par la suite définira incorrectement le pointeur vers le tampon pour les données entrantes. En conséquence, un attaquant peut lancer l'écriture de 1 à 10 octets dans une zone au-delà des limites du tampon alloué. Il est à noter qu'un exploit est en cours de développement qui permet d'obtenir les droits root dans le système.

Le problème est présent dans le noyau depuis juillet 2008, c'est-à-dire se manifeste dans tous les noyaux réels. Le correctif est actuellement disponible sous correctif. Vous pouvez suivre la disponibilité des mises à jour de packages dans les distributions sur les pages suivantes : Ubuntu, Fedora, SUSE, Debian, RHEL, voûte.

Source: opennet.ru

Ajouter un commentaire