Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
linux_mint_poc — PoC y parche para una vulnerabilidad de inyección de comandos en el manejador de URI de yelp en Linux Mint 18.3-19.1. Demuestra la causa raíz, la explotación y la mitigación. | Kitploit
Herramientas/GitHubGitHub/b1ack0wl/linux_mint_poc
Análisis de VulnerabilidadesExplotaciónAprendizaje y Educación
GitHubb1ack0wl/linux_mint_poc

linux_mint_poc

PoC y parche para una vulnerabilidad de inyección de comandos en el manejador de URI de yelp en Linux Mint 18.3-19.1. Demuestra la causa raíz, la explotación y la mitigación.

Ver Repositorio
5310hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Bug de inyección de comandos en 'yelp' de Linux Mint 18.3-19.1

Causa raíz

Los manejadores de URI help://, ghelp:// y man:// están definidos en el archivo /usr/share/applications/yelp.desktop, que ejecutará /usr/local/bin/yelp mediante Exec=yelp %u cada vez que se invoque uno de esos manejadores de URI.

El archivo /usr/local/bin/yelp es un simple script de Python que analiza la solicitud entrante del manejador de URI. Este script primero busca las subcadenas "gnome-help" y "ubuntu-help", y si no encuentra ninguna de esas subcadenas, entonces ejecutará /usr/local/bin/yelp sin encerrar el argumento entre comillas.

Contenido 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')

Del PoC a la shell

La explotación requirió un poco de creatividad, ya que Google Chrome codifica en la URI el carácter de espacio \x20, las llaves {}, el signo más +, el carácter de comilla invertida `, y algunos otros. Dado que ${IFS} no funcionaba, se descubrió que usar $IFS$() funciona igual de bien, ya que la sentencia $() evita que la variable de entorno $IFS se concatene con otros caracteres ASCII y accidentalmente se convierta en $IFSaddedword o algo así.

Mitigaciones

Resumen

El archivo yelp.patch modifica la sentencia vulnerable de os.system ("/usr/bin/yelp %s" % args) a os.system ("/usr/bin/yelp %s" % quote(args)), que aprovecha el método quote() de la librería shlex (https://docs.python.org/3/library/shlex.html#shlex.quote).

Instrucciones para parchear

O bien parchea yelp, o elimínalo.

Parchear yelp

  • Instala patch: sudo apt install patch
  • Parchea el script de yelp: sudo patch /usr/local/bin/yelp yelp.patch

Eliminar yelp y sus manejadores de URI asociados

  • Elimina los manejadores de URI: sudo rm /usr/share/applications/yelp.desktop
  • Elimina el script de Python de yelp: sudo rm /usr/local/bin/yelp

[b1ack0wl]

Descargar herramienta