Back to skill

Security audit

stata-skill

Security checks for vulnerabilities and agentic risk

Overview

This Stata helper skill is mostly purpose-aligned, but it asks agents to run unpinned third-party tooling and install mutable external packages that can affect local data and analysis results.

Review this skill before installing in sensitive environments. Use a pinned, reviewed version of `stata-mcp`, avoid arbitrary `net` or unreviewed GitHub ado sources, and run Stata/package-installation work with only the filesystem and data access needed for the task.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:17
Finding

Unpinned Third-Party Tool Execution and Unverified Package Installation

Content
View full analysis
[--source ssc|github|net] # install ado-package from ssc, net or github ``` ``` ### Technical Analysis The documented `uvx stata-mcp` invocation does not pin `stata-mcp` to an exact, reviewed version or require artifact integrity verification. Depending on the local `uvx` cache and environment, following this instruction may retrieve and execute the currently published package rather than the version assessed when the Skill was reviewed. The Skill also permits Stata ado packages to be installed from SSC, GitHub, or a generic `net` source. It does not require an approved repository, an immutable Git commit, a checksum, a signature, or explicit user authorization. GitHub branches and generic network sources are mutable, so their content can change after review. This creates a supply-chain trust gap: the effective code executed by the workflow is controlled partly by external package publishers and remote repositories rather than by the reviewed Skill package. ### Attack Path 1. An attacker compromises the `stata-mcp` distribution channel or a maintainer account, publishes a malicious update, or introduces a deceptive dependency. 2. Alternatively, an attacker controls or compromises a GitHub or `net` source selected for ado installation. 3. An agent follows the Skill instructions and runs the unpinned `uvx stata-mcp` command or installs the remote ado package. 4. The package manager retrieves the mutable, unverified artifact. 5. The retrieved tool or ado package e ...[truncated 1171 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description ends with 'Other actions if you need to use Stata,' which is an open-ended trigger that lacks clear boundaries. This broad phrasing can overlap with many ordinary analytics requests and does not specify what kinds of Stata-related actions are excluded.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The skill instructs users to run uvx stata-mcp without pinning a specific package version. Because uvx resolves and executes the latest available package by default, a malicious or compromised upstream release could change behavior and execute unintended code in the local environment. The skill context increases risk because this tool is explicitly used to run Stata commands, install packages, and process local files.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This command example invokes uvx stata-mcp without a pinned version, creating a supply-chain risk at execution time. If the upstream package is updated maliciously or unexpectedly, anyone following the skill may execute unreviewed code while performing package installation tasks that already have elevated trust implications.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The unpinned uvx stata-mcp invocation for executing do-files allows arbitrary upstream package updates to alter runtime behavior. In this context, the tool is used to execute analysis scripts, so a compromised package could manipulate results, exfiltrate local data, or run additional commands under the user's account.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

Using uvx stata-mcp without version pinning for the help command still introduces executable supply-chain risk because the package must be fetched and run first. Even though the intended action is low-risk help retrieval, a compromised package could perform unintended actions before returning help content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The data inspection example relies on an unpinned executable package, so users may run whatever version is currently published rather than a reviewed one. Because this command operates on local datasets, a malicious release could expose sensitive file contents or tamper with analysis metadata.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The log-reading example executes an unpinned package, which creates the same supply-chain exposure as the other commands. While the intended operation is to parse logs, the fetched code executes in the local environment and could access or alter files beyond the specified log path.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.