Back to skill

Security audit

GTM Skill Packs

Security checks for vulnerabilities and agentic risk

Overview

This is a legitimate GTM workflow pack, but it can sync prospect data to external ad and outreach tools without requiring clear user confirmation first.

Install only if you are comfortable with the agent using GTM research and connected Audience Loop tools. Keep use local by default, and require the agent to show the destination service, account, records, fields, and expected changes before any prospect upload, audience sync, campaign change, or analytics pull. Avoid storing or exporting named contacts unless it is necessary, public, and permitted by your privacy and compliance rules.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:44
Finding

Unconfirmed External Synchronization of Prospect Data

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 44–46
Vulnerability Type: Unconfirmed external data synchronization and write operations
Risk Level: Medium

Complete Vulnerable Snippet:

markdown
For tasks spanning multiple skills (e.g. "build a prospect list and write outreach"),
run each skill in sequence: Prospecting → Qualification Scoring → Outbound Strategy.

When Audience Loop MCP tools are available, use them to push prospect lists,
sync audiences to LinkedIn Ads or Smartlead, and pull campaign analytics.

Technical Analysis

The skill instructs the agent to use available Audience Loop MCP tools to push prospect lists and synchronize audiences with external services. It does not require explicit, operation-specific user approval before those external write operations.

A routine research or drafting request may therefore progress from locally generating a prospect list to transmitting prospect or contact information and changing audiences in LinkedIn Ads or Smartlead. The phrase “when ... tools are available, use them” makes tool availability—not informed user authorization—the condition for performing the operation.

This is an insecure skill configuration because external writes should be separated from local analysis and protected by a confirmation boundary. The instruction also lacks requirements to preview affected records, minimize transmitted fields, identify the destination account, or verify that the user is authorized to modify it.

Attack Path

  1. A user asks the agent to build a prospect list or perform a related GTM task.
  2. The skill collects or derives company, persona, and contact information.
  3. Audience Loop MCP tools are available in the agent environment.
  4. Following the skill instruction, the agent pushes the list or synchronizes it with LinkedIn Ads or Smartlead.
  5. Data leaves the local interaction or an external audience is modified without a distinct confirmation covering the destination ...[truncated 1063 chars]
Remediation
View remediation

Remediation Suggestions

  1. Default every research, scoring, and drafting workflow to local output only.
  2. Require explicit user confirmation immediately before each external upload, synchronization, campaign modification, or analytics retrieval.
  3. Present a preview containing:
    • Destination service and account.
    • Operation type.
    • Number and identity of affected records.
    • Fields that will be transmitted.
    • Expected external changes.
  4. Separate read-only analytics operations from write operations and request only the minimum necessary permissions.
  5. Apply data minimization and exclude sensitive or unnecessary personal information.
  6. Validate that records are verified and within the user-approved targeting criteria before synchronization.
  7. Provide a dry-run mode and preserve an auditable record of authorization and changes.
  8. Replace the unsafe instruction with language such as:
markdown
When Audience Loop MCP tools are available, do not push prospect lists, synchronize
audiences, modify campaigns, or retrieve account analytics unless the user explicitly
requests that specific operation. Before any external action, show the destination,
affected records and fields, and expected changes, then obtain confirmation.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill declares a very broad activation scope ('use when any GTM task is requested') and many generic trigger phrases, which can cause the agent to invoke this pack for loosely related requests without sufficient user intent verification. In practice this can lead to inappropriate tool usage, over-collection of business data, or routing the conversation into prescriptive workflows the user did not explicitly request.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest lists triggers such as "research this account" and activation "when preparing for a meeting with a named account," which are broad enough to match ordinary conversation and do not include exclusions or tighter scope constraints. This can cause the skill to activate in situations beyond the intended GTM account-research workflow.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly instructs collection of named personas and LinkedIn URLs, which can drive unnecessary aggregation of personal data without any privacy guardrails, minimization rules, or user-facing notice. In a GTM context this can normalize profiling of identifiable individuals and create compliance, privacy, and misuse risks if the data is collected, stored, or reused beyond a legitimate business purpose.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest-style description includes the trigger phrase "help me write outreach for [company]," where the leading wording "help me" is broad, conversational language that can easily overlap with ordinary requests. The file does not provide exclusion conditions or tighter invocation constraints to reduce unintended activation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger list uses broad natural-language phrases like 'build a prospect list' and 'who should we target,' which can overlap with many ordinary sales requests and cause this skill to auto-activate too often. Over-broad invocation increases the chance the agent applies prospecting behavior in the wrong context, leading to misrouting, unintended web/search use, or collection/output of prospect data when a narrower skill would be more appropriate.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.