Back to skill

Security audit

VoteShip

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for managing VoteShip, but it installs an unpinned external MCP server that receives a powerful API key and can perform live writes, deletes, revenue updates, AI processing, and webhook changes.

Install only if you trust the VoteShip MCP package and are comfortable giving it a VoteShip API key with broad project authority. Use the least-privileged key available, confirm destructive actions before running them, avoid raw sensitive customer or credential data in AI ingestion, and prefer a pinned/audited package version in production.

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:11
Finding
Unpinned Third-Party Executable Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 11–14 **Vulnerability Type**: Unpinned external npm executable **Risk Level**: Medium ### Vulnerable Code ```yaml install: - kind: node package: "@voteship/mcp-server" bins: [voteship-mcp] ``` ### Technical Analysis The skill directs the host to install and execute the third-party npm package `@voteship/mcp-server` without specifying an exact version or integrity hash. Consequently, the dependency resolved at installation time can differ from the version that was originally reviewed. The package implementation is not included in the audited project, so its runtime behavior, lifecycle scripts, network destinations, credential handling, and access controls cannot be verified from the available artifact. This is security-sensitive because the installed server is expected to receive `VOTESHIP_API_KEY` and perform privileged operations involving posts, votes, comments, users, analytics, releases, Stripe-derived customer revenue data, and webhooks. There is no direct evidence in the audited file that the named package is currently malicious. The vulnerability is the mutable, unverified supply-chain trust boundary. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or another part of its publication pipeline. 2. The attacker publishes a malicious package version under the same package name. 3. A host installs this skill and resolves the package without an exact version or verified integrity value. 4. npm downloads and installs the attacker-controlled release. 5. Malicious lifecycle or runtime code executes with the installer or agent runtime's operating-system privileges. 6. The code accesses `VOTESHIP_API_KEY` from the environment and may use it to exfiltrate data or perform unauthorized VoteShip project operations. ### Impact Assessment Successful exploitation could permit arbitrary code execution within the p ...[truncated 492 chars]
Remediation
## Remediation Suggestions 1. Pin `@voteship/mcp-server` to a specific, audited version rather than resolving a mutable release. 2. Use a lockfile and verify the package's registry integrity hash during installation. 3. Review the pinned package source, transitive dependencies, npm lifecycle scripts, network destinations, and credential-handling behavior before deployment. 4. Disable npm installation scripts where feasible, or explicitly audit every required lifecycle script. 5. Run the MCP server in a sandbox with minimal filesystem, process, and outbound-network permissions. 6. Use a narrowly scoped API credential and rotate it periodically and after any suspected dependency compromise. 7. Restrict outbound network access to documented VoteShip endpoints where operationally possible. 8. Add automated dependency monitoring and require review before upgrading the pinned version.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill advertises destructive and high-impact admin actions such as creating, updating, deleting posts, modifying users, syncing Stripe-derived MRR, and configuring webhooks, but it does not explicitly warn that these operations can change production data or have irreversible effects. In an agent setting, this increases the risk of unintended actions because a user or downstream system may treat the skill as routine information retrieval rather than a write-capable integration.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill explicitly encourages submitting raw Slack, email, and support-ticket text to AI processing without any privacy or data-handling warning. Those sources commonly contain sensitive personal, business, or credential-adjacent information, so omitting caution about redaction, minimization, and consent creates a realistic risk of over-sharing sensitive content with external services.

Static analysis

No suspicious patterns detected.