Nous avons trouvé trois vulnérabilités dans systemd - nous comprenons quel est le problème

Au début du mois, les experts en sécurité de Qualys ont immédiatement découvert trois vulnérabilités dans systemd - le sous-système d'initialisation Linux - permettant à un attaquant d'obtenir des droits de superutilisateur. Nous disons quelle est leur essence et quelles distributions leur sont soumises.


/ Flickr / David Goehring / CC BY / Photo modifiée

Anciennes nouvelles vulnérabilités


Les trois vulnérabilités sont associées au service de journalisation systemd, journald. Les identifiants suivants leur ont été attribués dans la base de données CVE : CVE-2018-16864 , CVE-2018-16865 et CVE-2018-16866 . Ces vulnérabilités donnent à un attaquant la possibilité d'obtenir des privilèges root sur le système attaqué.

Toutes les distributions sans la fonction de protection de l'espace utilisateur ( -fstack-check ) - Debian, Ubuntu, Fedora, CentOS, Mageia, etc. sont à risque. Parmi les exceptions figurent SUSE Linux Enterprise 15 et openSUSE Leap 15.0, ainsi que Fedora versions 28 et 29.

Fait intéressant, les trois vulnérabilités existent depuis plusieurs années , on ne savait rien à leur sujet. CVE-2018-16864 est apparu en 2013, mais il est devenu possible de l'exploiter en 2016, lorsque systemd a été mis à jour vers la version 230. CVE-2018-16865 est apparu dans le système d'exploitation en 2011, mais n'est devenu critique que deux ans après la sortie de la version 201 de systemd.

Quant à la troisième vulnérabilité (CVE-2018-16866), elle existe depuis 2015. Cependant, il a été accidentellement fermé avec la mise à jour systemd v240 quelques années plus tard. Les machines sans ce patch sont toujours en danger.

Quelle est l'essence des "trous" découverts


La vulnérabilité CVE-2018-16864 permet à un attaquant de manipuler la ligne de commande et d'envoyer de nombreux arguments (pesant plusieurs mégaoctets) à systemd-journald, provoquant ainsi le blocage du processus. De plus, le pirate a la possibilité de prendre le contrôle du pointeur d'instruction étendu (EIP).

Le problème avec CVE-2018-16864 est lié à l'écriture d'un gros message dans / run / systemd / journal / socket. Par conséquent, une partie de ce message sort de la pile et entre dans la région mmap . Après cela, un attaquant peut écraser le segment lecture-écriture de libc et remplacer le pointeur de fonction et exécuter toute chaîne de programme souhaitée sur le système.

Quant à CVE-2018-16866, il est associé à une erreur d'analyse de ligne. Si vous envoyez un message spécial (se terminant par un caractère deux-points) au format syslog au système de journalisation, le système ignorera la fin de la ligne et inscrira la partie suivante de la pile dans le journal.

Les deuxième et troisième vulnérabilités permettent la mise en œuvre du soi-disant retour d'attaque à la bibliothèque et exécutent sur la machine de la victime toutes les fonctions. Selon des experts de Qualys, ils ont réussi à créer un exploit et à obtenir des droits de superutilisateur sur des ordinateurs avec l'architecture i386 et amd64 en 10 et 70 minutes, respectivement.

«Ces vulnérabilités sont assez graves, car elles permettent d'augmenter les droits d'accès au système. Les auteurs gardent toujours secret leur code d'exploitation, car il existe de nombreuses distributions de «trous», a commenté Sergey Belkin, chef du département de développement du fournisseur IaaS 1cloud.ru . «Ils le publieront lorsque les vulnérabilités seront corrigées.» Certains développeurs, par exemple d' Ubuntu et de Red Hat , ont déjà publié les correctifs nécessaires. Ils peuvent être trouvés dans les dépôts officiels. "


/ Flickr / bradleypjohnson / CC BY

Quelles autres vulnérabilités ont été trouvées dans systemd


La dernière fois qu'une vulnérabilité systemd a été découverte en octobre 2018. Le client DHCPv6 du gestionnaire de services a démarré automatiquement lorsqu'un message a été reçu d'un serveur DHCP du réseau local ou du fournisseur de services Internet. L'utilisation de ce message dans systemd peut provoquer une panne de mémoire et prendre le contrôle de l'ordinateur.

Avant cela, plusieurs bogues dans le code du gestionnaire de services ont été trouvés en 2017. L'un d'eux a autorisé les attaquants à utiliser des paquets TCP pour exécuter n'importe quel code sur le système. Les paquets TCP «ont forcé» systemd à allouer trop peu d'espace tampon au message. Cela nous a permis d'écrire des données arbitraires en dehors du tampon dans la mémoire principale.

Une autre vulnérabilité de 2017 était liée à l'obtention non autorisée de droits de superutilisateur. Dans certaines distributions, par exemple CentOS et RHEL7, dans systemd, il était possible de créer un profil avec un nom d'utilisateur commençant par un nombre. Bien que généralement sous Linux, cette fonctionnalité n'est pas fournie. Mais si un tel utilisateur apparaissait dans le système, le gestionnaire de services lui accordait des droits d'administrateur.

Toutes ces vulnérabilités ont été corrigées en peu de temps. Des "patchs" pour de nouveaux "trous" découverts en janvier apparaissent également progressivement. On peut s'attendre à ce que les vulnérabilités soient bientôt corrigées dans la plupart des distributions, et les administrateurs de serveurs et d'ordinateurs Linux n'auront qu'à installer une mise à jour du système.

Articles du blog d'entreprise 1cloud:

Source: https://habr.com/ru/post/fr437556/


All Articles