/

CVE-2026-55096

Severity:

HIGH RISK

(7.1)

DNS-Rebinding SSRF (CWE-918) in fast-mcp-telegram MCP

CVE-2026-55096

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-184, CWE-918

Impact:

Authenticated Full-Read SSRF and Data Exfiltration

Severity:

HIGH RISK

(7.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

fast-mcp-telegram can be tricked into downloading files from internal network locations because its URL security check examines a hostname without resolving it first. An attacker who can invoke the affected message tools may cause the server to fetch private or local resources and return their contents as a Telegram attachment.

Affected context

The issue occurs in deployments where the send_message or send_message_to_phone MCP tools accept HTTP or HTTPS file URLs and the server retrieves those URLs before attaching them to Telegram messages. The risk is present when hostname validation relies only on the literal hostname and the subsequent HTTP client performs DNS resolution independently, allowing a permitted-looking name to resolve to a loopback, private, or link-local address.

Exploit preconditions

  • Attack surface: MCP tools that accept remote file URLs
  • Required access: Ability to invoke the affected tool, subject to the deployment's MCP authentication and authorization controls
  • Trigger point: Server-side download of a supplied URL before sending the Telegram message
  • Why exploitation is possible: The denylist validates the hostname text but does not bind validation to the address actually resolved and contacted by the HTTP client

Why this happens

The underlying bug is a mismatch between URL validation and network connection behavior. The application checks a hostname's literal text against SSRF denylist rules, but the HTTP client later resolves that hostname and may connect to a restricted address. This represents CWE-918: Server-Side Request Forgery, with CWE-184: Incomplete List of Disallowed Inputs contributing to the ineffective denylist design. Because the response body is attached to an outgoing Telegram message, the flaw supports content retrieval and exfiltration rather than only blind network interaction.

Potential impact

  • Internal services or metadata endpoints may be read
  • Private, loopback, or link-local resources could be exfiltrated
  • Cloud credentials or service tokens may be exposed
  • Internal network topology and service information could be disclosed
  • Telegram recipients or other downstream systems may receive sensitive fetched content

General mitigation guidance

Mitigation generally focuses on validating the destination address at connection time, not only the submitted hostname.

Common defensive patterns include:

  • Resolve hostnames and reject disallowed address ranges before connection
  • Bind validation to the actual destination used by the HTTP client and account for redirects
  • Prefer an explicit outbound host or network allowlist over a broad denylist
  • Restrict supported URL schemes and use secure transport by default
  • Apply egress firewall policies and isolate the service from sensitive network segments
  • Limit tool permissions, response sizes, timeouts, and attachment destinations
  • Avoid returning fetched response bodies when the workflow does not require them
  • Re-check destinations across redirects and protect against DNS changes during requests

How teams detect issues like this

Detection can combine code inspection, runtime telemetry, and network policy enforcement.

Useful approaches include:

  • Static analysis rules for hostname-only SSRF checks followed by separate HTTP client requests
  • Code review checks for DNS rebinding exposure, redirect handling, and unrestricted URL fetches
  • Tests using hostnames that resolve to loopback, private, link-local, or changing addresses
  • Monitoring outbound connections from the MCP server to internal address ranges
  • Alerting on unusual attachment fetches, metadata-service access, oversized responses, or repeated resolution changes
  • Egress policy controls that deny private and link-local destinations unless explicitly required
  • Automated security review tools that identify SSRF sinks and incomplete denylist validation

Sources

SourceLink
github.comgithub.com/leshchenko1979/fast-mcp-telegram/commit/e6b3032cfc906e14f5b84f2c2b8ec378eb457e57
github.comgithub.com/leshchenko1979/fast-mcp-telegram/releases/tag/0.30.1
github.comgithub.com/leshchenko1979/fast-mcp-telegram/security/advisories/GHSA-xr72-j7vj-vp7g

Frequently asked

questions

An attacker generally needs permission to invoke an affected MCP tool or access to a workflow that can invoke it. The practical scope depends on the server's authentication and authorization configuration.

It requires a reachable destination that the server should not access, such as a private service, loopback endpoint, link-local endpoint, or cloud metadata service. The destination's response must also be accessible to the server.

Validate the resolved destination address immediately before connection, enforce explicit outbound allowlists where practical, and reapply equivalent controls to redirects and subsequent connections.

Treat user-supplied URLs as untrusted, isolate outbound fetchers with network policy, test DNS rebinding and redirect scenarios, limit returned content, and monitor unexpected internal egress.

Find out what's already
exploitable in your codebase.