TALOS-2025-2243 || Cisco Talos漏洞报告
CVE编号
CVE-2025-41390
概述
Truffle Security Co.的TruffleHog 3.90.2版本中的Git功能存在任意代码执行漏洞。 specially crafted的恶意仓库可导致任意代码执行。攻击者可通过提供恶意仓库来触发此漏洞。
确认受影响的版本
以下版本经过Talos测试或验证,或由供应商确认为受影响版本: Truffle Security Co. TruffleHog 3.90.2
产品链接
TruffleHog - https://trufflesecurity.com/trufflehog
CVSSv3评分
7.8 - CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CWE
CWE-829 - 来自不受信任控制范围的功能包含
详细说明
TruffleHog是一款开源工具,旨在帮助开发人员和安全团队检测可能意外提交到版本控制系统(如Git)中的秘密信息,如API密钥、密码和凭据。它会扫描存储库中高熵字符串和类似敏感信息的模式,帮助组织防止数据泄露并维护安全的编码实践。
客户端Git钩子通常是位于.git/hooks目录下的脚本。这些钩子由Git子命令本地执行,用于协助存储库维护、自动化、持续集成(CI)和其他自定义任务。它们不受存储库版本控制,也不会通过git clone复制。
但是,如果通过tar、cp或rsync等方式逐文件复制存储库,钩子将存在于目标位置,并且有多种情况可能意外触发它们。
一个特别危险的钩子是通过core.fsmonitor配置选项控制的。此设置允许Git调用自定义脚本或程序来优化文件系统监控性能。重要的是,fsmonitor钩子会在诸如git status等操作期间自动触发,这些操作被许多第三方工具(例如IDE、Git GUI或CI代理)隐式使用,无需用户显式调用。
如果攻击者设法将恶意的core.fsmonitor值注入到存储库的.git/config文件中,例如通过:
- 制作具有特制本地配置的恶意Git存储库,
- 将存储库压缩成存档并通过电子邮件或文件共享传递给受害者,
- 让受害者在易受攻击的应用程序中打开存储库,该应用程序会触发Git操作(如git status),
这可能导致在受害者不知情的情况下在其机器上执行任意命令。
TruffleHog Git存储库扫描器使用具有默认设置的git客户端,这会导致Git从存储库的.git/config文件中读取配置值。如果存在恶意的fsmonitor属性,则可能导致任意命令执行,因为Git会在某些操作(例如git status)期间自动调用指定的命令。
测试场景演示
|
|
使用准备好的存储库,我们可以使用trufflehog进行扫描:
|
|
缓解措施
客户端git钩子应在系统级别默认禁用。如果不可能,则应通过添加CLI选项来覆盖危险的配置选项来修补受影响的工具。示例:git -c core.fsmonitor="" status。
开发人员和工具作者应谨慎对待此攻击向量,避免盲目信任来自不受信任源的Git配置。
供应商响应
供应商公告:https://trufflesecurity.com/blog/contributor-spotlight-adam-reiser-of-cisco-talos
时间线
- 2025-08-19 - 初始供应商联系
- 2025-08-19 - 供应商披露
- 2025-10-17 - 供应商补丁发布
- 2025-10-20 - 公开发布
致谢
Cisco ASIG的Adam Reiser