Back to skill

Security audit

Battlecard: Competitive Intelligence and Sales Practice

Security checks for vulnerabilities and agentic risk

Overview

The sales tools fit their advertised purpose, but simulation instructions can keep sending replies after a plain-language request to stop.

Use fictional or redacted practice material until you understand the service's storage and sharing terms. Before using confidential notes or voice messages, ensure the agent honors ordinary stop requests before further uploads. The documented exit is a standalone /end.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (6)

The call-notes example invites users to submit potentially confidential sales data without warning that it is processed by an external service.

Medium
Category
Output Handling
Confidence
90% confidence
Finding

The README encourages submitting sales-call notes and states that extracted intelligence is stored, but provides no explicit warning about sending confidential customer or business information to an external service. Although remote processing is consistent with the advertised functionality rather than covert exfiltration, the sales context makes accidental disclosure of sensitive pricing, customer details, and deal strategy plausible. The documentation does not establish whether submitted information contributes to cross-user intelligence, so that additional exposure cannot be assumed.

Content

No source excerpt is available for this finding.

Unrestricted Tool Access

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Content

Scanner excerpt · README.md (reported line 60)May include surrounding context.

clawhub install battlecard-competitive-intelligence

text

Then run any script in the `scripts/` folder directly.

### MCP configuration (for full access)

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: shell.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
## Remembering Context

After the first battle card is generated, remember the user's company and competitor for the rest of the session. If they say "run another simulation" or "practice again", reuse the same company and competitor without asking again. If they say "try against [new competitor]", keep the same company but switch the competitor.

If the user says "add a competitor" or "what about [competitor name]", generate a new battle card for their company vs the new competitor.

Simulation replies and voice notes are sent to an external service without a privacy warning.

Medium
Category
Output Handling
Confidence
98% confidence
Finding

The workflow sends users' simulation replies and voice notes to an external service without clearly disclosing that transfer or explaining how recordings and transcripts are handled. Sales practice can contain confidential deal information, customer details, and identifiable audio; automatically forwarding subsequent turns and recognizing only narrowly defined exit commands increases the chance of unintended disclosure.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/battlecard.sh (reported line 28)May include surrounding context.

sh
PAYLOAD="{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"$TOOL_NAME\",\"arguments\":$PARAMS}}"

  if [ -n "$BATTLECARD_API_KEY" ]; then
    curl -s -X POST "$BATTLECARD_URL" \
      -H "Content-Type: application/json" \
      -H "X-Battlecard-Key: $BATTLECARD_API_KEY" \
      --data-raw "$PAYLOAD"

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:98