Back to skill

Security audit

marketing-memory

Security checks for vulnerabilities and agentic risk

Overview

This skill is transparent about using BlueColumn memory, but it directs agents to store interaction summaries in an external persistent service without clear consent, redaction, or retention controls.

Review this skill before installing if campaign discussions may include confidential plans, customer data, personal data, metrics, or secrets. Use it only with explicit approval for what will be stored, redact sensitive details before writes, and confirm BlueColumn retention, deletion, access, and key-rotation practices.

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
Findings (1)

other

Warning
Location
SKILL.md:9
Finding

Automatic External Transmission and Persistent Storage of Interaction Summaries

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 9 and 37–40
Vulnerability Type: Unauthorized External Data Transmission
Risk Level: Medium

Relevant code:

markdown
## Setup
Read `TOOLS.md` or the platform secret store for the BlueColumn API key (`bc_live_*`). Base URL: `https://xkjkwqbfvkswwdmbtndo.supabase.co/functions/v1`
markdown
## Workflow
1. On new context, first recall: `How are our marketing campaigns performing?`
2. Use the answer to personalize the response
3. After the interaction, store the summary via `/agent-remember`

Technical Analysis

The skill directs the agent to transmit a summary of each interaction to an external Supabase-hosted BlueColumn endpoint. The workflow does not require explicit user confirmation before writing, define an allowlist of permitted fields, require redaction of credentials or personal information, or state retention and deletion controls.

Because interaction summaries may include confidential campaign details, personal data, internal metrics, or other sensitive conversation content, automatic storage creates an external disclosure boundary that users may not reasonably expect. The behavior is documented rather than concealed, and no evidence shows that the API key is sent anywhere other than the stated service; nevertheless, the absence of per-write consent and data minimization controls makes the transmission unsafe.

Attack Path

  1. A user discusses sensitive marketing metrics, strategy, customer information, or credentials during an interaction.
  2. The agent follows the mandatory post-interaction workflow and creates a summary.
  3. The agent authenticates with the bc_live_* key obtained from the platform secret store.
  4. The summary is submitted to the external /agent-remember endpoint.
  5. The external service persistently stores the information, making it available through later recall operations and subjecting it to ...[truncated 686 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require explicit, informed user approval before every external memory write, showing the exact content and destination.
  2. Make persistent storage opt-in rather than a mandatory post-interaction step.
  3. Restrict stored records to user-selected marketing fields and enforce strict schemas and length limits.
  4. Redact API keys, credentials, personal data, customer identifiers, and confidential business information before transmission.
  5. Add automated secret and sensitive-data detection, failing closed if unsafe content is identified.
  6. Document the external processor, storage region, retention duration, access policy, deletion procedure, and incident-response process.
  7. Provide users with commands to inspect, correct, and permanently delete stored records.
  8. Prefer an organization-controlled, allowlisted endpoint with transport security, tenant isolation, least-privilege credentials, access logging, and key rotation.
  9. Do not automatically reuse recalled content unless its provenance and authorization scope have been validated.
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 (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs agents to use an external persistent memory service for campaign data but does not warn that user or business information will be transmitted off-platform. This creates a real privacy and data-governance risk because operators may store confidential marketing plans, metrics, or customer-related context without informed consent or policy review.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The examples and workflow normalize storing campaign history and post-interaction summaries in persistent external memory without any caution about sensitive business data, personal data, or retention concerns. Because the workflow says to store summaries after interactions by default, it increases the chance of routine exfiltration of sensitive context to a third-party service.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
92% confidence
Finding

This is a true external-transmission behavior: the skill sends campaign text to a remote BlueColumn endpoint using an API key. In context, the transmission is the core function of the skill, but it is still security-relevant because it can move proprietary campaign performance data and interaction-derived summaries to an external service.

Content

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

Store

bash
curl -X POST .../agent-remember \
  -H "Authorization: Bearer <key>" \
  -H "Content-Type: application/json" \
  -d '{"text": "Campaign: ClawHub skills launch. Goal: 100 installs. Metrics 7/31: 12 installs, 4 bookmarks.", "title": "marketing-memory - note"}'