IPBUF安全漏洞报告
English
CVE-2025-12121 CVSS 7.3 高危

CVE-2025-12121: Lite XL system.exec函数命令注入漏洞

披露日期: 2025-11-20

漏洞信息

漏洞编号
CVE-2025-12121
漏洞类型
命令注入
CVSS评分
7.3 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Lite XL

相关标签

命令注入本地攻击权限提升Lite XL文本编辑器system.execCVE-2025-12121高危漏洞Shell注入

漏洞概述

Lite XL是一款轻量级文本编辑器,其2.1.8及之前版本中存在严重的命令注入漏洞。该漏洞源于system.exec函数未对输入参数进行充分的Shell命令清理,导致攻击者可以通过构造恶意输入执行任意系统命令。system.exec函数在多个核心功能中被调用,包括项目目录启动(core.lua)、拖放文件处理(rootview.lua)以及树视图插件中的"系统打开"命令(treeview.lua)。攻击者需要具备一定条件才能利用此漏洞,包括需要通过用户交互触发(如拖放文件或打开项目),但一旦利用成功,攻击者可以在Lite XL进程的权限下执行任意系统命令,可能导致数据泄露、系统被完全控制等严重后果。

技术细节

漏洞的根本原因在于system.exec函数直接使用字符串拼接方式构造Shell命令,缺少对特殊字符(如分号、管道符、反引号等)的转义或过滤。在core.lua的项目目录启动功能中,系统会执行类似于'cd /path/to/project && command'的命令;在rootview.lua的拖放功能中,会对用户拖放的文件路径进行处理并执行命令;在treeview.lua中,"open in system"功能会将选中的文件路径传递给system.exec。由于这些功能接收的路径或文件名可能包含用户可控内容,攻击者可以通过在文件名中注入Shell命令或参数来实现命令执行。例如,一个名为'test$(whoami).txt'的文件在通过拖放或系统打开功能处理时,可能导致执行额外的命令。攻击者需要诱导用户进行特定操作(打开特定项目目录、拖放恶意文件、点击恶意文件),属于用户交互型本地攻击。

攻击链分析

STEP 1
步骤1
攻击者创建包含恶意Shell命令的文件名,如'test$(whoami).txt'
STEP 2
步骤2
攻击者通过社会工程学手段诱导用户获取该恶意文件或将其放入用户的工作目录
STEP 3
步骤3
用户使用Lite XL打开包含恶意文件的目录,触发core.lua中的项目目录启动功能
STEP 4
步骤4
Lite XL调用system.exec函数处理文件名,由于未进行输入清理,注入的命令被执行
STEP 5
步骤5
攻击者成功在用户权限下执行任意系统命令,可能导致数据泄露或进一步入侵

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-12121 PoC - Lite XL Command Injection # Affected: Lite XL <= 2.1.8 # Attack Vector: Create a malicious filename with shell commands # Method 1: Via drag-and-drop (rootview.lua) # Create a file with malicious name in project directory malicious_filename = 'test$(touch /tmp/pwned).txt' # When user drags this file, arbitrary command executes # Method 2: Via treeview "Open in System" (treeview.lua) # Similar payload in file name malicious_file = '$(calc.exe).txt' # Method 3: Via project directory launching (core.lua) # Create malicious entry in project configuration # The path will be passed to system.exec without sanitization # Exploitation example (Unix-like systems): # touch 'test$(whoami>pwned).txt' # When processed by Lite XL, the command in $() will execute # Python PoC to generate malicious filenames: import os payload = '$(echo PWNED > /tmp/cve-2025-12121)' malicious_name = f'malicious_file{payload}.txt' print(f'Malicious filename: {malicious_name}') # When Lite XL processes this filename via system.exec, # the command inside $() will be executed

影响范围

Lite XL <= 2.1.8

防御指南

临时缓解措施
目前官方已发布修复补丁,建议用户立即升级到Lite XL 2.1.8之后的版本。如果无法立即升级,应避免打开来源不明的项目目录,谨慎处理用户目录中的文件,避免拖放未知来源的文件到Lite XL窗口中,并关注官方安全公告以获取最新信息。

参考链接

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