Des vulnérabilités exploitables dans nf_tables, watch_queue et IPsec ont été identifiées dans le noyau Linux

Plusieurs vulnérabilités dangereuses ont été identifiées dans le noyau Linux qui permettent à un utilisateur local d'augmenter ses privilèges dans le système. Des prototypes fonctionnels d'exploits ont été préparés pour tous les problèmes considérés.

  • Une vulnérabilité (CVE-2022-0995) dans le sous-système de suivi des événements watch_queue permet d'écrire des données dans un tampon hors limites dans la mémoire du noyau. L'attaque peut être menée par n'importe quel utilisateur non privilégié et entraîner l'exécution de son code avec les droits du noyau. La vulnérabilité existe dans la fonction watch_queue_set_size() et est associée à une tentative d'effacement de tous les pointeurs d'une liste, même si de la mémoire ne leur a pas été allouée. Le problème survient lors de la construction du noyau avec l'option "CONFIG_WATCH_QUEUE=y", utilisée dans la plupart des distributions Linux.

    La vulnérabilité a été corrigée dans un changement de noyau ajouté le 11 mars. Vous pouvez suivre les publications des mises à jour de paquets dans les distributions sur ces pages : Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Le prototype d'exploit est déjà disponible publiquement et vous permet d'obtenir un accès root lors de l'exécution sur Ubuntu 21.10 avec le noyau 5.13.0-37.

    Des vulnérabilités exploitables dans nf_tables, watch_queue et IPsec ont été identifiées dans le noyau Linux

  • Vulnérabilité (CVE-2022-27666) dans les modules du noyau esp4 et esp6 avec l'implémentation de transformations ESP (Encapsulated Security Payload) pour IPsec, utilisées lors de l'utilisation d'IPv4 et IPv6. La vulnérabilité permet à un utilisateur local disposant de privilèges normaux d'écraser des objets dans la mémoire du noyau et d'élever ses privilèges sur le système. Le problème est dû à un manque de rapprochement entre la taille de mémoire allouée et les données réelles reçues, étant donné que la taille maximale du message pourrait dépasser la taille de mémoire maximale allouée pour la structure skb_page_frag_refill.

    La vulnérabilité a été corrigée dans le noyau le 7 mars (corrigée dans 5.17, 5.16.15, etc.). Vous pouvez suivre les publications des mises à jour de paquets dans les distributions sur ces pages : Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Un prototype fonctionnel de l'exploit, qui permet à un utilisateur ordinaire d'obtenir un accès root à Ubuntu Desktop 21.10 dans la configuration par défaut, a déjà été publié sur GitHub. On prétend qu'avec des modifications mineures, l'exploit fonctionnera également sur Fedora et Debian. Il est à noter que l'exploit a été initialement préparé pour le concours pwn2own 2022, mais les développeurs du noyau ont identifié et corrigé un bug qui lui était associé, il a donc été décidé de divulguer les détails de la vulnérabilité.

  • Deux vulnérabilités (CVE-2022-1015, CVE-2022-1016) dans le sous-système netfilter du module nf_tables, qui assure le fonctionnement du filtre de paquets nftables. Le premier problème permet à un utilisateur local non privilégié de réaliser une écriture hors limites dans un tampon alloué sur la pile. Un débordement se produit lors du traitement d'expressions nftables formatées d'une certaine manière et traitées lors de la phase de vérification des index spécifiés par un utilisateur ayant accès aux règles nftables.

    La vulnérabilité est due au fait que les développeurs ont laissé entendre que la valeur de "enum nft_registers reg" était un seul octet, alors que lorsque certaines optimisations étaient activées, le compilateur, selon la spécification C89, pouvait utiliser une valeur de 32 bits pour cela. . En raison de cette fonctionnalité, la taille utilisée lors de la vérification et de l'allocation de mémoire ne correspond pas à la taille réelle des données dans la structure, ce qui conduit à ce que la queue de la structure se chevauche avec des pointeurs sur la pile.

    Le problème peut être exploité pour exécuter du code au niveau du noyau, mais une attaque réussie nécessite l'accès à nftables, qui peut être obtenu dans un espace de noms réseau distinct avec les droits CLONE_NEWUSER ou CLONE_NEWNET (par exemple, si vous pouvez exécuter un conteneur isolé). La vulnérabilité est également étroitement liée aux optimisations utilisées par le compilateur, qui, par exemple, sont activées lors de la construction en mode « CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y ». L'exploitation de la vulnérabilité est possible à partir du noyau Linux 5.12.

    La deuxième vulnérabilité de netfilter est causée par l'accès à une zone mémoire déjà libérée (use-after-free) dans le gestionnaire nft_do_chain et peut conduire à une fuite de zones non initialisées de la mémoire du noyau, qui peuvent être lues via des manipulations avec des expressions nftables et utilisées, par exemple, pour déterminer les adresses de pointeurs lors d'exploits de développement pour d'autres vulnérabilités. L'exploitation de la vulnérabilité est possible à partir du noyau Linux 5.13.

    Les vulnérabilités sont corrigées dans les correctifs de noyau actuels 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 et 4.9.309. Vous pouvez suivre les publications des mises à jour de paquets dans les distributions sur ces pages : Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Le chercheur qui a identifié les problèmes a annoncé la préparation d'exploits fonctionnels pour les deux vulnérabilités, qui devraient être publiés dans quelques jours, après la publication des mises à jour des packages du noyau par la distribution.

Source: opennet.ru

Ajouter un commentaire