
Exploit de prova de conceito para CVE-2019-12735 demonstrando execução arbitrária de comandos via recurso de modeline do Vim/Neovim. Inclui injeção de shellcode e geração de payload de reverse shell para testes educacionais de segurança.
Pré-requisito: ativar a funcionalidade modeline
Para usuários comuns, a funcionalidade modeline está ativada por padrão, enquanto para o usuário root está desativada por padrão.
Use echo &modeline para verificar o status: 1 indica ativado, 0 indica desativado.
Se não estiver ativado, você pode adicionar set modeline ao ~/.vimrc (crie o arquivo se não existir).
Ao escrever manualmente, lembre-se de que o caractere de escape x1b é um caractere não visível.
Para modificar o segundo trecho do código de exploração, uma maneira simples é baixar o arquivo fonte e alterar a parte do comando de execução. Você também pode usar um editor binário para escrever ou modificar manualmente.
poc.txt:
vim poc.txt
shell.txt:
nc -lvp 9999
vim shell.txt
então você pode obter um shell
set nomodeline ao vimrc para desativar o modeline.