Back to skill

Security audit

me.txt

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent, but it recommends unpinned npx commands that can download and run mutable third-party code on the user's machine.

Review before installing if your agent may run shell commands. Prefer the manual me.txt creation and direct HTTPS fetch instructions, or only run the CLI with an exact reviewed version in a restricted environment without unnecessary credentials.

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

Error
Location
SKILL.md:87
Finding
Unpinned Third-Party Package Download and Execution via npx## Vulnerability Details **File Location**: `SKILL.md`, lines 87–97 **Vulnerability Type**: Unpinned and unaudited dependency execution **Risk Level**: High **Vulnerable code:** ```markdown If the user has a GitHub profile, offer to pre-fill from it using: `npx create-me-txt --github username` ## Fetching a me.txt To look up someone's me.txt, try these URLs in order: 1. `https://domain.com/me.txt` 2. `https://domain.com/.well-known/me.txt` 3. `https://metxt.org/api/lookup?domain=domain.com` (directory fallback) Or use the CLI: `npx create-me-txt` then run `me-txt fetch domain.com` ``` ### Technical Analysis The Skill recommends executing `create-me-txt` through `npx` without specifying an exact package version, integrity value, or verified source. If the package is not already installed locally, `npx` may retrieve the current package release from the configured npm registry and immediately execute it. Consequently, the code executed is mutable after the Skill has been reviewed. Compromise of the package, maintainer account, registry publication process, or dependency chain could cause arbitrary third-party code to execute in the user's environment. The package receives at least a GitHub username in the pre-fill workflow and may inherit the process environment and the user's filesystem permissions. This execution exceeds minimum privilege because the Skill already documents procedures for manually creating and fetching a `me.txt` file. Running an external package is therefore optional rather than essential to the declared functionality. The documented directory fallback at `https://metxt.org/api/lookup?domain=domain.com` performs expected network access for the lookup feature. It discloses the requested domain and requester network metadata to the service, but the reviewed text does not direct transmission of credentials, environment variables, or private local files. ### Attack Path 1. An attacker compromises ...[truncated 1155 chars]
Remediation
## Remediation Suggestions 1. Prefer the documented manual creation, direct HTTPS retrieval, and local structural validation procedures instead of executing an npm package. 2. If the CLI remains necessary, pin it to an exact reviewed version rather than allowing `npx` to resolve the latest release. 3. Verify package ownership, provenance, release signatures where available, and package integrity before use. 4. Review the package and its transitive dependency tree before approving execution. 5. Install dependencies through a committed lockfile and use integrity-enforcing installation workflows. 6. Disable lifecycle scripts where compatible with the package and avoid implicit installation through `npx`. 7. Run the CLI in a restricted sandbox or container with no unnecessary credentials, minimal filesystem mounts, and limited outbound network access. 8. Require explicit user confirmation before downloading or executing third-party code and clearly disclose the package source and version. 9. Require confirmation before external lookups and avoid submitting private or internal domain names to the directory fallback.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill instructs users to execute `npx create-me-txt` without pinning an exact package version or verifying package integrity. This creates a supply-chain risk: a malicious or compromised future release could be fetched and executed automatically, and because `npx` runs code from the package, exploitation could lead to arbitrary code execution on the user's system.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The validation/fetch workflow again recommends running `npx create-me-txt` without an exact version, exposing users to the same unbounded package-resolution risk. In this skill's context, the command is presented as normal setup/utility usage, which makes users more likely to execute it without scrutiny and increases the chance of supply-chain compromise leading to arbitrary code execution.

Static analysis

No suspicious patterns detected.