Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
linux_mint_poc — PoC e patch para uma vulnerabilidade de injeção de comando no manipulador de URI do yelp no Linux Mint 18.3-19.1. Demonstra a causa raiz, a exploração e a mitigação. | Kitploit
Ferramentas/GitHubGitHub/b1ack0wl/linux_mint_poc
Análise de VulnerabilidadesExploraçãoAprendizado e Educação
GitHubb1ack0wl/linux_mint_poc

linux_mint_poc

PoC e patch para uma vulnerabilidade de injeção de comando no manipulador de URI do yelp no Linux Mint 18.3-19.1. Demonstra a causa raiz, a exploração e a mitigação.

Ver Repositório
53101há 7 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Bug de injeção de comandos no 'yelp' do Linux Mint 18.3-19.1

Causa raiz

Os manipuladores de URI help://, ghelp:// e man:// estão definidos no arquivo /usr/share/applications/yelp.desktop, que executa /usr/local/bin/yelp via Exec=yelp %u sempre que um desses manipuladores de URI é invocado.

O arquivo /usr/local/bin/yelp é um simples script python que analisa a solicitação recebida do manipulador de URI. Este script primeiro procura pelas substrings "gnome-help" e "ubuntu-help" e, se não encontrar nenhuma delas, executa /usr/local/bin/yelp sem envolver o argumento entre aspas.

Conteúdo 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')

Do PoC ao Shell

A exploração exigiu um pouco de criatividade, pois o Google Chrome codifica via URI o caractere de espaço \x20, chaves {}, o caractere de mais +, o caractere de crase ` e alguns outros. Como ${IFS} não funcionava, descobriu-se que usar $IFS$() funciona igualmente bem, pois a instrução $() impede que a variável de ambiente $IFS seja concatenada com outros caracteres ASCII e acabe virando acidentalmente $IFSaddedword ou algo assim.

Mitigações

Visão geral

O arquivo yelp.patch modifica a instrução vulnerável de os.system ("/usr/bin/yelp %s" % args) para os.system ("/usr/bin/yelp %s" % quote(args)), utilizando o método quote() da biblioteca shlex (https://docs.python.org/3/library/shlex.html#shlex.quote).

Instruções para aplicar o patch

Pode-se aplicar o patch no yelp ou removê-lo.

Aplicando o patch no yelp

  • Instale o patch: sudo apt install patch
  • Aplique o patch no script yelp: sudo patch /usr/local/bin/yelp yelp.patch

Removendo o yelp e seus manipuladores de URI associados

  • Remova os manipuladores de URI: sudo rm /usr/share/applications/yelp.desktop
  • Remova o script python do yelp: sudo rm /usr/local/bin/yelp

[b1ack0wl]

Baixar ferramenta