Une vulnérabilité qmail a été trouvée qui lui permet d'être exploitée à distance

Les chercheurs en sécurité de Qualys ont montré la possibilité d'exploiter une vulnérabilité dans le serveur de messagerie qmail, connu depuis 2005 (CVE-2005-1513), mais non corrigé, depuis qmail a affirmé qu'il n'était pas réaliste de créer un exploit fonctionnel qui pourrait être utilisé pour attaquer les systèmes dans la configuration par défaut.

Mais il semble que les développeurs de qmail ils avaient tort, puisque Qualys a réussi à préparer un exploit qui réfute cette hypothèse et permet de lancer l'exécution de code à distance sur le serveur en envoyant un message spécialement conçu.

Le problème est causé par un débordement dans la fonction stralloc_readyplus (), qui peut se produire lors du traitement d'un très gros message. Pour l'opération, un système 64 bits avec une capacité de mémoire virtuelle de plus de 4 Go était nécessaire.

Dans l'analyse de vulnérabilité initiale en 2005, Daniel Bernstein a fait valoir que l'hypothèse du code selon laquelle la taille du tableau alloué correspond toujours à une valeur de 32 bits est basée sur le fait que personne ne fournit des gigaoctets de mémoire à chaque processus. .

Au cours des 15 dernières années, les systèmes 64 bits sur serveurs ont remplacé les systèmes 32 bits, la quantité de mémoire fournie et la bande passante du réseau ont considérablement augmenté.

Les paquets accompagnant qmail ont pris en compte le commentaire de Bernstein et lors du démarrage du processus qmail-smtpd, ils ont limité la mémoire disponible (par exemple, sur Debian 10, la limite était fixée à 7 Mo).

Mais le Les ingénieurs de Qualys ont découvert que cela ne suffisait pas et en plus de qmail-smtpd, une attaque à distance peut être menée sur le processus qmail-local, qui est resté illimité sur tous les packages testés.

Pour preuve, un prototype d'exploit a été préparé, qui convient pour attaquer le paquet fourni par Debian avec qmail dans la configuration par défaut. Pour organiser l'exécution de code à distance lors d'une attaque, le serveur nécessite 4 Go d'espace disque libre et 8 Go de RAM.

L'exploit permet d'exécuter n'importe quelle commande shell avec les droits de tous les utilisateurs du système, à l'exception des utilisateurs root et système qui n'ont pas leur propre sous-répertoire dans le répertoire "/ home"

L'attaque est réalisée par l'envoi d'un très gros message électronique, qui comprend plusieurs lignes dans l'en-tête, environ 4 Go et 576 Mo de taille.

Lors du traitement de ladite ligne dans qmail-local un débordement d'entier se produit lors de la tentative de remise d'un message à un utilisateur local. Un débordement d'entier conduit alors à un buffer overflow lors de la copie de données et à la possibilité d'écraser les pages mémoire avec du code libc.

Aussi, lors du processus d'appel de qmesearch () dans qmail-local, le fichier ".qmail-extension" est ouvert via la fonction open (), ce qui conduit au lancement effectif du système (". Qmail-extension" ). Mais comme une partie du fichier "extension" est formée en fonction de l'adresse du destinataire (par exemple, "localuser-extension @ localdomain"), les attaquants peuvent organiser le démarrage de la commande en spécifiant l'utilisateur "localuser-; commander; @localdomain »en tant que destinataire du message.

L'analyse du code a également révélé deux vulnérabilités dans le correctif supplémentaire check de qmail, qui fait partie du paquet Debian.

  • La première vulnérabilité (CVE-2020-3811) permet de contourner la vérification des adresses e-mail, et la seconde (CVE-2020-3812) conduit à une fuite d'informations locale.
  • La deuxième vulnérabilité peut être utilisée pour vérifier la présence de fichiers et de répertoires sur le système, y compris ceux disponibles uniquement pour root (qmail-verify commence avec les privilèges root) via un appel direct au pilote local.

Un ensemble de correctifs a été préparé pour ce paquet, éliminant les anciennes vulnérabilités de 2005 en ajoutant des limites de mémoire strictes au code de la fonction alloc () et de nouveaux problèmes dans qmail.

De plus, une version mise à jour du correctif qmail a été préparée séparément. Les développeurs de la version notqmail ont préparé leurs correctifs pour bloquer les anciens problèmes et ont également commencé à travailler pour éliminer tous les débordements d'entiers possibles dans le code.

source: https://www.openwall.com/


Laisser un commentaire

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

*

*

  1. Responsable des données: Miguel Ángel Gatón
  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.