mcp-ssh-tool, Policy Bypass & Timing Side Channel, GHSA-j7h9-2jh7-g967 (High Severity)

Listen to this Post

Three vulnerabilities are fixed in `[email protected]`:

  1. Insufficient local path policy enforcement in transfer‑related filesystem handling – Access control that should block writes to protected directories (e.g., /etc, /root) can be bypassed by using the tool’s own file‑transfer functions instead of generic filesystem APIs.
  2. Incomplete canonicalization and segment‑boundary handling for deny‑prefix path policy checks – The path sanitizer fails to normalize all forms of `..` (e.g., `….//` or URL‑encoded variants) and does not correctly enforce boundaries, so a request like `GET /transfer/../etc/shadow` could evade a `deny‑prefix` rule that was meant to block access to /etc.
  3. Non‑constant‑time HTTP bearer token comparison – The token validation routine uses a simple byte‑by‑byte comparison that returns early at the first mismatch, creating a measurable timing difference in the HTTP response. This side channel can be exploited by an attacker to leak the token character by character.

DailyCVE Form

Platform: nodejs/npm
Version: <2.1.1
Vulnerability: path+timing bypass
Severity: High
date: 2026-05-08

Prediction: 2026-06-15

What Undercode Say

Detect vulnerable deployments
npm list mcp-ssh-tool | grep "mcp-ssh-tool@" || echo "Package not found"
Upgrade to patched version
npm install -g mcp-ssh-tool@latest
Verify upgrade succeeded
mcp-ssh-tool --version | grep -q "2.1.1" && echo "Patched" || echo "Vulnerable"

How Exploit

  1. Path traversal bypass – Send a file‑transfer request using non‑canonical `..` sequences (e.g., ....//, %2e%2e%2f) to a path like /transfer/....//etc/shadow. The incomplete canonicalization will resolve this to `/etc/shadow` while the deny‑prefix check only sees the malformed string.
  2. Timing side channel – Inject a crafted bearer token and measure response times. By changing one character at a time and comparing round‑trip latencies, the correct token can be recovered byte by byte.

Protection from this CVE

  • Immediate – Patch to ≥2.1.1. If not possible:
  • Bind HTTP transport only to `127.0.0.1` (no remote exposure).
  • Use strict filesystem policies (e.g., read‑only mounts for sensitive paths).
  • Revoke MCP client access to local transfer directories.
  • Enable audit logging and monitor for unusual transfer operations.
  • Detection – Scan for any `GET /transfer/` requests containing .., %2e, or unusual encoding. For timing attacks, compare anomaly detection on request/response latency across bearer token attempts.

Impact

  • Confidentiality – An attacker can read arbitrary files outside allowed transfer paths, including SSH keys, configuration files, and credentials. The timing side channel can recover bearer tokens, leading to full authentication bypass.
  • Integrity – Write operations may be similarly bypassed, allowing unauthorized file modifications or planting of malicious content.
  • Availability – Not directly affected, but token compromise may enable further disruptive actions.
  • Attack complexity – Low for path traversal (single HTTP request); moderate for timing attack (requires network proximity and multiple requests).

🎯Let’s Practice Exploiting & Learn Patching For Free:

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top