News · DiggingBeagle record

A PyPI package opened a command-capable MCP server and an outbound tunnel

Corgea documents malicious dynamic-mcp package versions that exposed a local command executor through an outbound Cloudflare tunnel. The finding concerns executable dependency behavior, not a model successfully obeying a prompt injection.

Published
Nov 11, 2026

The report

A Python package installed for an AI integration can create a new remote-control surface before the model has made any consequential decision. In a November 7 analysis, Corgea documented dynamic-mcp releases that opened an unauthenticated service and exposed it through a Cloudflare Quick Tunnel, with shell execution available in later versions.

The first step was package execution

The identified PyPI distribution presented itself as an MCP integration. Corgea reports that versions 0.2.0 through 1.0.9 created a public Cloudflare tunnel and registered its address with a remote service. OpenSSF’s source review dates arbitrary bash -c execution to version 1.0.4 onward, not every earlier release. The outbound connection matters: a host with no open inbound firewall port can still become reachable through a tunnel initiated by code already running inside the host.

That mechanism is distinct from persuading a legitimate agent to use an authorized tool incorrectly. The dependency itself supplies a hidden executor and control channel. Its publication under an MCP-themed name does not make it an official Model Context Protocol implementation. The Case separates the affected package from adjacent suspicious names described in the Corgea investigation and OpenSSF’s package evidence.

The report also discusses Earth Engine OAuth lures, Xinference-targeting packages and other ecosystem abuse. Sharing a research article does not prove a common operator, a single affected host or one coordinated victim campaign. Public package analysis supports the malicious behavior and its installation preconditions, but it does not establish the number of compromised customers or an observed attacker command on a production machine.

Operators should verify the exact package identity and artifact version in their Python environments, inspect import-time behavior, look for unexpected local MCP listeners and outbound tunnel processes, and rotate credentials accessible to an installation confirmed to have executed. A dependency name in a lockfile is a lead, not by itself proof that malicious code ran.

Research behind this