Back to skill

Security audit

Company, Email & Lead Enrichment

Security checks for vulnerabilities and agentic risk

Overview

This skill is a clear lead-enrichment connector, but it asks agents to send personal contact data to a third-party API and auto-pay per request without enough user controls or privacy guidance.

Review this skill before installing in any workflow that handles real prospects, employees, customers, or wallet funds. Use it only with an approved business purpose, confirm that users are allowed to send the target data to GoCreative, and place wallet spend limits or manual approval around x402 payments.

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 (2)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:27
Finding

Sensitive Personal Identifiers Embedded in HTTPS URL Paths

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 27-32; supporting usage example at line 37
Vulnerability Type: Sensitive data exposure through URL paths
Risk Level: Medium

Vulnerable Code

markdown
| `GET https://api.gocreativeai.com/v1/enrich/company/{domain}` | B2B company enrichment from a domain (firmographics) | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/email/{name-and-domain}` | Find a person's likely **work email** from name + company domain | ~$0.02 |
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/linkedin/{profile}` | LinkedIn profile enrichment | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/bundle/company-360/{domain}` | **Company 360**: full domain intelligence bundle | ~$0.15 |

The documented example further demonstrates direct placement of an email address in a URL path:

markdown
- Find + verify an email: `GET /v1/enrich/email/jane-doe-acme.com` → then `GET /v1/bundle/email-360/jane@acme.com`.

Technical Analysis

The Skill instructs agents to insert names, email addresses, LinkedIn profile identifiers, and company domains directly into HTTPS URL paths. TLS protects the request while it is in transit, but it does not prevent full URLs from being recorded by the client, API gateway, reverse proxy, web server, monitoring platform, tracing system, or access logs.

Email addresses and profile identifiers are personal data. Using them as path parameters increases their exposure and retention across infrastructure components that routinely log request targets. URL encoding does not provide confidentiality; it only makes values syntactically safe for transport.

Attack Path

  1. An agent recei ...[truncated 1118 chars]
Remediation
View remediation

Remediation Suggestions

  • Replace endpoints that accept personal identifiers in URL paths with authenticated HTTPS POST endpoints.
  • Put email addresses, names, and profile identifiers in a structured JSON request body.
  • Configure clients, gateways, proxies, servers, observability tools, and error-reporting systems to redact sensitive request fields.
  • Define and publish data-retention, deletion, and access-control policies for submitted identifiers.
  • Require agents to obtain appropriate authorization before transmitting third-party personal data.
  • Minimize submitted information and avoid sending unnecessary profile or contact details.
  • If compatibility requires retaining GET endpoints, use short-lived opaque request tokens rather than raw personal identifiers.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:20
Finding

Server-Controlled Automatic USDC Payments Lack Documented Spending Controls

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 20-31
Vulnerability Type: Insufficient authorization and validation for automatic cryptocurrency payments
Risk Level: Medium

Vulnerable Code

markdown
## How it's paid (x402 — no key, no signup)
Each tool is a plain HTTPS GET. The first call returns **HTTP 402** with a price; your OpenClaw wallet auto-pays the small USDC fee (Base) and retries, returning JSON.

## Tools (live endpoints)
| Call | What you get | Price |
|---|---|---|
| `GET https://api.gocreativeai.com/v1/enrich/company/{domain}` | B2B company enrichment from a domain (firmographics) | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/email/{name-and-domain}` | Find a person's likely **work email** from name + company domain | ~$0.02 |
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/linkedin/{profile}` | LinkedIn profile enrichment | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/bundle/company-360/{domain}` | **Company 360**: full domain intelligence bundle | ~$0.15 |

Technical Analysis

The documented workflow delegates payment initiation to an external server: the server returns an HTTP 402 response containing a payment requirement, after which the wallet automatically pays and retries the request. The prices in the document are approximate rather than enforceable limits.

The Skill does not document validation of the exact amount, token contract, network, recipient, endpoint-specific price, payment expiration, retry count, or cumulative session budget. It also does not require explicit user confirmation when the payment recipient or amount changes.

Consequently, a compromised, misconfigured, or behaviora ...[truncated 1389 chars]

Remediation
View remediation

Remediation Suggestions

  • Enforce exact maximum prices for every endpoint rather than relying on approximate documentation.
  • Define per-call, per-session, and daily cumulative spending limits.
  • Validate the expected blockchain network, asset and token contract, recipient address, amount, endpoint, request identifier, and expiration before signing.
  • Reject payment requirements that differ from a locally trusted price manifest.
  • Require explicit user approval for first-time recipients, changed prices, changed contracts, or payments above a low threshold.
  • Limit payment retries and detect repeated HTTP 402 responses to prevent payment loops.
  • Record a clear audit trail of requested and completed payments without logging private keys or sensitive wallet material.
  • Use a dedicated low-balance wallet or narrowly scoped allowance instead of exposing a general-purpose wallet.
  • Display the exact charge and recipient to the user before payment where interactive authorization is available.
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 (7)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill prominently advertises email finding, email validation, and LinkedIn/profile enrichment, which involve processing personal data, but it provides no warning or usage guardrails around consent, lawful basis, or privacy-sensitive handling. In an agent context, this increases the risk that users or autonomous workflows will transmit and enrich personal identifiers without understanding the privacy implications.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

This endpoint sends user-supplied company domains to an external service, creating a data egress path to a third party. While domain-only enrichment is less sensitive than direct personal-data lookup, the skill does not disclose trust boundaries, data handling, or require user confirmation before transmission.

Content

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

md
## Tools (live endpoints)
| Call | What you get | Price |
|---|---|---|
| `GET https://api.gocreativeai.com/v1/enrich/company/{domain}` | B2B company enrichment from a domain (firmographics) | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/email/{name-and-domain}` | Find a person's likely **work email** from name + company domain | ~$0.02 |
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This endpoint transmits a person's name and associated company domain to an external service to infer a work email, which is personal-data processing and external disclosure. In agent workflows, this can be invoked at scale for prospecting or surveillance without notice, consent, or policy checks, increasing privacy and compliance risk.

Content

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

md
| Call | What you get | Price |
|---|---|---|
| `GET https://api.gocreativeai.com/v1/enrich/company/{domain}` | B2B company enrichment from a domain (firmographics) | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/email/{name-and-domain}` | Find a person's likely **work email** from name + company domain | ~$0.02 |
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/linkedin/{profile}` | LinkedIn profile enrichment | ~$0.05 |

External Transmission

Medium
Category
Data Exfiltration
Confidence
98% confidence
Finding

This endpoint sends a full email address to a third-party service for validation and enrichment, directly disclosing personal contact information externally. Because the skill omits user-facing consent, lawful-use constraints, and retention details, the data transmission presents meaningful privacy, compliance, and misuse risk.

Content

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

md
|---|---|---|
| `GET https://api.gocreativeai.com/v1/enrich/company/{domain}` | B2B company enrichment from a domain (firmographics) | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/email/{name-and-domain}` | Find a person's likely **work email** from name + company domain | ~$0.02 |
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/linkedin/{profile}` | LinkedIn profile enrichment | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/bundle/company-360/{domain}` | **Company 360**: full domain intelligence bundle | ~$0.15 |

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This endpoint transmits a domain to an external enrichment provider for DNS/WHOIS/TLS analysis, creating a third-party data flow. Although the input is typically public-facing infrastructure data, the skill still lacks transparency and control around external transmission, which can matter in enterprise or confidential investigations.

Content

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

md
| `GET https://api.gocreativeai.com/v1/enrich/company/{domain}` | B2B company enrichment from a domain (firmographics) | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/email/{name-and-domain}` | Find a person's likely **work email** from name + company domain | ~$0.02 |
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/linkedin/{profile}` | LinkedIn profile enrichment | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/bundle/company-360/{domain}` | **Company 360**: full domain intelligence bundle | ~$0.15 |

External Transmission

Medium
Category
Data Exfiltration
Confidence
98% confidence
Finding

This endpoint sends a LinkedIn profile identifier to an external service for profile enrichment, which can involve processing personal profile data and potentially sensitive employment-related information. In this context, the absence of privacy warnings or restrictions makes autonomous scraping/enrichment workflows more dangerous.

Content

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

md
| `GET https://api.gocreativeai.com/v1/enrich/email/{name-and-domain}` | Find a person's likely **work email** from name + company domain | ~$0.02 |
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/linkedin/{profile}` | LinkedIn profile enrichment | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/bundle/company-360/{domain}` | **Company 360**: full domain intelligence bundle | ~$0.15 |

URL-encode arguments. Email finder example: `/v1/enrich/email/jane-doe-stripe.com`.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This bundled endpoint transmits a company domain to an external provider for broader intelligence gathering, expanding the scope of third-party processing. Even if the target data is mostly organizational, the skill does not explain external handling or give users a chance to assess whether sharing the target domain is appropriate in their environment.

Content

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

md
| `GET https://api.gocreativeai.com/v1/bundle/email-360/{email}` | **Email 360**: deliverability validation + provider/domain enrichment | ~$0.15 |
| `GET https://api.gocreativeai.com/v1/enrich/domain/{domain}` | Domain intel: DNS + WHOIS + TLS, fused | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/enrich/linkedin/{profile}` | LinkedIn profile enrichment | ~$0.05 |
| `GET https://api.gocreativeai.com/v1/bundle/company-360/{domain}` | **Company 360**: full domain intelligence bundle | ~$0.15 |

URL-encode arguments. Email finder example: `/v1/enrich/email/jane-doe-stripe.com`.

Static analysis

No suspicious patterns detected.