Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
linux_mint_poc — PoC et correctif pour une vulnérabilité d'injection de commandes dans le gestionnaire d'URI yelp de Linux Mint 18.3-19.1. Démontre la cause racine, l'exploitation et la mitigation. | Kitploit
Outils/GitHubGitHub/b1ack0wl/linux_mint_poc
Analyse des VulnérabilitésExploitationApprentissage et Éducation
GitHubb1ack0wl/linux_mint_poc

linux_mint_poc

PoC et correctif pour une vulnérabilité d'injection de commandes dans le gestionnaire d'URI yelp de Linux Mint 18.3-19.1. Démontre la cause racine, l'exploitation et la mitigation.

Voir le dépôt
5310il y a 7 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Linux Mint 18.3-19.1 : bug d'injection de commande dans 'yelp'

Cause racine

Les gestionnaires d'URI help://, ghelp:// et man:// sont définis dans le fichier /usr/share/applications/yelp.desktop, qui exécute /usr/local/bin/yelp via Exec=yelp %u à chaque fois que l'un de ces gestionnaires d'URI est invoqué.

Le fichier /usr/local/bin/yelp est un simple script Python qui analyse la requête entrante du gestionnaire d'URI. Ce script recherche d'abord les sous-chaînes "gnome-help" et "ubuntu-help", et s'il ne trouve aucune de ces sous-chaînes, il exécute /usr/local/bin/yelp sans mettre l'argument entre guillemets.

Contenu de /usr/local/bin/yelp :

root@kitploit:~
#!/usr/bin/python

import os
import sys

if (len(sys.argv) > 1):
    args = ' '.join(sys.argv[1:])
    if ('gnome-help' in args) and not os.path.exists('/usr/share/help/C/gnome-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    elif ('ubuntu-help' in args) and not os.path.exists('/usr/share/help/C/ubuntu-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    else:
        os.system ("/usr/bin/yelp %s" % args)  # uh oh
else:
    os.system ('/usr/bin/yelp')

Du PoC au Shell

L'exploitation a demandé un peu de créativité car Google Chrome encode en URI le caractère espace \x20, les accolades {}, le caractère plus +, le caractère accent grave `, et quelques autres. Comme ${IFS} ne fonctionnait pas, on a découvert que l'utilisation de $IFS$() fonctionne tout aussi bien, car l'instruction $() empêche la variable d'environnement $IFS de se concaténer avec d'autres caractères ASCII et de devenir accidentellement $IFSaddedword ou quelque chose d'approchant.

Contremesures

Vue d'ensemble

Le fichier yelp.patch modifie l'instruction vulnérable os.system ("/usr/bin/yelp %s" % args) en os.system ("/usr/bin/yelp %s" % quote(args)), ce qui utilise la méthode quote() de la bibliothèque shlex (https://docs.python.org/3/library/shlex.html#shlex.quote).

Instructions pour appliquer le correctif

Soit patcher yelp, soit le supprimer.

Patcher yelp

  • Installer patch : sudo apt install patch
  • Patcher le script yelp : sudo patch /usr/local/bin/yelp yelp.patch

Supprimer yelp et ses gestionnaires d'URI associés

  • Suppression des gestionnaires d'URI : sudo rm /usr/share/applications/yelp.desktop
  • Suppression du script Python yelp : sudo rm /usr/local/bin/yelp

[b1ack0wl]

Télécharger l’outil