这几天在挖Electron的相关漏洞,审计到自己平时在用的一个md笔记,发现Boostnote客户端v0.11.15及以下版本过滤不严,可进一步RCE。

漏洞诱因是Boostnote引入了mermaid组件,该组件并未对iframe等标签的属性做过滤,从而导致了漏洞的存在。

poc

尝试看能不能xss2rce,直接执行没执行成功。应该是nodeIntegration做了限制,后来在imagemlt师傅的提示下,注意到boostnote的markdown渲染是一个iframe。

iframe

看到iframe中有全局的parent,进一步调试利用~

parent

发现虽然限制在iframe中无法直接用require构造RCE,但仍然可以向父节点递归找到全局可应用的Webview,进行进一步利用。

rce

最终成功RCE。

xss2rce

尝试了另外几个使用相同插件的md笔记,有几个同样可以成功XD。同时,水了人生中第一个CVE纪念一下~

相关链接

  1. NVD - CVE-2019-12136
  2. 安全性,原生能力和你的责任 Electron
  3. BoostIO Boostnote 0.11.15 iFRAME Element cross site scripting
  4. Electronegativity-A-Study-Of-Electron-Security