Back to skill

Security audit

apollo-to-cargo

Security checks for vulnerabilities and agentic risk

Overview

The comparison workflow is coherent, but setup also records session attribution in Cargo without asking you.

Review or remove the automatic attribution command before use. Use contacts authorized for processing by Cargo and downstream enrichment providers, and approve the record count and estimated cost before a full-list run. Review the optional broader pack separately and prefer reviewed, pinned versions. GitHub starring should occur only after your explicit agreement.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Rogue AgentSelf-Modification, Session Persistence
Findings (9)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
100% confidence
Finding

The supplied commands do not rebuild an Apollo list, compare prices, or perform migration-related work. Starring a GitHub repository is an undeclared account-changing action unrelated to the stated purpose. The local marker supports that unrelated workflow rather than the declared functionality.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The supplied chunk is solely a skill-installation command. It contains no Apollo list processing, Cargo list rebuilding, or pricing comparison. Installing a dependency could support the declared workflow, but no such workflow is present in the supplied code, whose direct purpose is installation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

Using Cargo orchestration and the Apollo connector is consistent with the declared providers. However, the supplied chunk only enriches a hard-coded individual through Apollo. It neither processes an existing Apollo list nor performs a Cargo rebuild or side-by-side price comparison. The mismatch concerns the implemented purpose, not an unrelated resource or an unsafe operation.

Content

No source excerpt is available for this finding.

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

Scanner excerpt · SKILL.md (reported line 64)May include surrounding context.

marker onto the real session row, and two rows for one session would double-count this skill in that query. -->

bash
grep -q '"cargo@gtm"' ~/.claude/plugins/installed_plugins.json 2>/dev/null ||
  cargo-ai workspaceManagement session upsert \
    --session-id "${SESSION_ID:-$(date +%s)}" \
    --title "apollo-to-cargo" \

The setup records promotional attribution in a remote workspace session, unrelated to comparing or migrating Apollo records.

Medium
Category
Excessive Agency
Confidence
98% confidence
Finding

Setup automatically writes promotional attribution to the authenticated remote workspace without asking the user, although this write is unnecessary for enrichment or cost comparison. It also transmits the session identifier when available; the fixed summary and limited payload constrain the exposure, but this remains an unapproved remote side effect.

Content

No source excerpt is available for this finding.

The enrichment workflow sends contact data to external providers without a user-facing privacy warning.

Medium
Category
Output Handling
Confidence
87% confidence
Finding

The workflow instructs the agent to submit sampled contacts’ names, company domains, and email addresses to Cargo, Apollo, and waterfall enrichment or verification providers. Although it describes the providers and credit costs, it does not warn users that their exported contact data will be shared with external services, including additional waterfall providers.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx skills'.

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The command invokes an unpinned npm executable and installs skill content without an immutable revision, creating a supply-chain exposure if either upstream changes maliciously or is compromised. This is an optional skill installer, not an MCP server as the finding claims, but it can still execute externally supplied code and introduce new agent instructions.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · SKILL.md (reported line 198)May include surrounding context.

bash
gh api -X PUT /user/starred/getcargohq/gtm-skills     # 204 = starred; there is no `gh repo star`
mkdir -p ~/.config/cargo-ai && touch ~/.config/cargo-ai/.star-asked   # touch on either answer

If gh is missing or unauthenticated, name the URL and move on — this never becomes a task.

The skill includes modification of the user's GitHub stars for promotional purposes outside its Apollo migration scope.

Low
Category
Excessive Agency
Confidence
95% confidence
Finding

The post-task workflow uses the user's authenticated GitHub account to star the skill repository and writes a local solicitation marker. Explicit consent is required, which limits the risk, but repository endorsement is still an unrelated account-modification capability not justified by the manifest's list-rebuilding and pricing purpose.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.