Une vulnérabilité a été trouvée dans Ghostscript qui pourrait permettre l'exécution de code

Il y a peu jours où ils ont publié la nouvelle de ce qui a été identifié une vulnérabilité dans Ghostscript (CVE-2020-15900) qu'il pourrait provoquer la modification du fichier et l'exécution arbitraire de commandes lors de l'ouverture de documents PostScript spécialement formatés.

Ceux qui ne connaissent pas Ghostscript doivent savoir que il s'agit d'un moteur de rendu pour le contenu Postscript et PDF et il est couramment utilisé pour convertir des documents PDF et Postscript en images à des fins de prévisualisation, de vignette et d'impression.

Il est également utilisé pour la reproduction de documents de qualité supérieure pour de nombreux lecteurs PDF, y compris les lecteurs populaires sur Android, et est autorisé par plusieurs grandes entreprises telles que Google pour le rendu dans le cloud.

À propos de la vulnérabilité dans Ghostscript

Le bogue a été identifié lors de l'utilisation de l'opérateur rsearch PostScript non standard dans un document qui permet de provoquer un débordement de type uint32_t lors du calcul de la taille, écraser les zones de mémoire hors de la mémoire tampon assigné et accéder aux fichiers sur le système de fichiers, qui peuvent être utilisés pour organiser une attaque afin d'exécuter du code arbitraire sur le système (par exemple, en ajoutant des commandes à ~ / .bashrc ou ~ / .profile).

L'extrait trouvé par AFL a poussé une chaîne vide sur la pile: les crochets vides (), ont copié la référence à ceci, résultant en une pile avec deux chaînes vides () () et ont ensuite effectué la recherche inversée. En d'autres termes, il recherchait une chaîne vide dans une chaîne vide, en commençant par la fin.

Malheureusement, ils ont manqué un cas limite où la chaîne vide est recherchée. Lorsque vous recherchez une chaîne vide, cela est défini comme un succès immédiat: il n'y a rien à rechercher, nous sautons donc jusqu'à la fin. Cependant, le résultat doit être divisé en valeurs d'avant-match, de correspondance et d'après-match. Malheureusement, le code a supposé que nous avions regardé au moins une fois et calculé la longueur du résultat d'après-match de manière incorrecte en soustrayant un de zéro, ce qui entraînait un retour à la valeur maximale: 4,294,967,295 XNUMX XNUMX XNUMX.

Cette erreur il s'agit d'un défaut de corruption de la mémoire où il y a une possibilité de panne et cela arrive tout le temps. Pas besoin de gérer les protections de pile, etc., il suffit de lire et d'écrire ce que vous voulez sur un segment de mémoire massif. Cela a permis à quelqu'un qui n'est pas un auteur d'exploit expérimenté de l'exploiter assez facilement.

En raison de ce sous-débit, cette chaîne n'avait jamais été allouée et ne prenait pas de place réelle, mais il avait une longueur qui s'étendait à un autre souvenir. Essayer de lire ou d'écrire cette mémoire dans des adresses aléatoires dépasserait les limites de la mémoire, d'où tous les échecs de fuzzing. Cependant, nous pourrions stocker la référence pour permettre son utilisation en utilisant cet extrait de code:

Il est important de tenir compte du fait que les vulnérabilités dans Ghostscript sont plus gravescar ce package est utilisé dans de nombreuses applications de traitement PostScript et PDF populaires. Par exemple, Ghostscript est appelé lors de la création de vignettes sur le bureau, lors de l'indexation de données en arrière-plan et lors de la conversion d'images.

Pour une attaque réussie, dans de nombreux cas, il suffit de télécharger simplement le fichier d'exploit ou de parcourir le répertoire avec celui-ci dans Nautilus.

Les vulnérabilités de Ghostscript peuvent également être exploitées via des pilotes d'image basé sur les packages ImageMagick et GraphicsMagick, en passant un fichier JPEG ou PNG, qui contient du code PostScript au lieu d'une image (ce fichier sera traité dans Ghostscript, puisque le type MIME est reconnu par le contenu, et sans dépendre de l'extension).

Solution

Le problème affecte les versions 9.50 à 9.52 (Le bogue existe depuis la version 9.28rc1, mais selon les chercheurs qui ont identifié la vulnérabilité, il est apparu depuis la version 9.50).

Mais un correctif était déjà proposé dans la version 9.52.1 en plus de cela etdes mises à jour ont été publiées des packages de correctifs pour certaines distributions Linux telles que Debian, Ubuntu et SUSE.

Alors que les paquets dans RHEL ne sont pas affectés.

source: https://insomniasec.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 : 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.