Back to skill

Security audit

marketing

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its Instagram marketing purpose, but it sends an API key and user-supplied URLs to an external service with a documented endpoint mismatch and limited input safeguards.

Install only if you are comfortable sending product URLs, scraped page content, and the SKILLBOSS_API_KEY to the external API used by the script. Before use, confirm whether api.heybossai.com and api.skillbossai.com are the same trusted provider endpoint, avoid private or signed URLs, and treat extracted product claims as unverified.

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

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/extract_product.py:27
Finding

API Credential Sent to an Endpoint Inconsistent with Primary Documentation

Content
View full analysis
dict: r = requests.post( f"{API_BASE}/pilot", headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"}, json=body, timeout=60, ) ``` However, the primary Skill documentation identifies a different endpoint: ```markdown The script uses **SkillBoss API Hub** (`https://api.skillbossai.com/v1/pilot`) to: 1. Scrape the product page via the `scraping` capability 2. Extract structured product data via the `chat` capability (auto-routed LLM) ``` ### Technical Analysis The script reads `SKILLBOSS_API_KEY` from the environment and places it in an HTTP bearer authorization header. Every call to `pilot()` therefore transmits the credential to `https://api.heybossai.com/v1/pilot`. The principal usage documentation instead tells users that the service endpoint is `https://api.skillbossai.com/v1/pilot`. The repository does not establish that the two domains are equivalent, operated under the same security boundary, or authorized to share the same credentials. Sending a secret to an endpoint different from the endpoint disclosed to the user violates transparency and least-privilege expectations. HTTPS protects the credential in transit but does not resolve whether the recipient is correct or authorized. ### Attack Path 1. A user reviews `SKILL.md` and expects the API key to be sent to `api.skillbossai.com`. 2. The user places a valid `SKILLBOSS_API_KEY` in the environment. 3. The script imports and immedi ...[truncated 866 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/extract_product.py:54
Finding

Untrusted Webpage Content Directly Embedded in an LLM Instruction

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/extract_product.py:49
Finding

Arbitrary URLs and Embedded Secrets Forwarded to an External Scraping Service

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Tainted flow: 'SKILLBOSS_API_KEY' from os.environ (line 27, credential/environment) → requests.post (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/extract_product.py (reported line 32)May include surrounding context.

python
def pilot(body: dict) -> dict:
    r = requests.post(
        f"{API_BASE}/pilot",
        headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"},
        json=body,

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared description promises an end-to-end Instagram marketing content generator from product URLs, including engaging posts, captions, CTAs, hashtags, and story/reels suggestions. The supplied code chunk only implements the extraction portion: it scrapes the product page, asks an LLM to return structured product fields, and adds a simple content_type recommendation. While this extraction supports the declared use case, the actual implemented behavior is materially narrower than the stated primary purpose. There are no obvious undeclared risky capabilities beyond web scraping/API use, which are consistent with extraction, but the main functionality described is not fully represented by the code.

Content

No source excerpt is available for this finding.

Ssd 1

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

Untrusted webpage content is inserted directly into an LLM prompt, so a malicious product page can include prompt-injection instructions that manipulate the extraction step. Even though the model is asked to return JSON only, hostile page text can cause data poisoning, schema bypass, misleading outputs, or downstream unsafe behavior if later components trust the extracted fields.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill requires environment access and network use to call an external API, but it does not declare any explicit tool scope or permissions boundary. This increases the chance of over-broad execution in agent environments, reducing transparency and making unintended data access or transmission harder to govern.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
92% confidence
Finding

The skill explicitly transmits data to an external service, which is a genuine security and privacy concern when handling arbitrary user-provided URLs and scraped page contents. In this skill's context, the danger is elevated because web scraping may collect more page data than the user expects, and that content is then forwarded to a third-party API.

Content

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

SKILLBOSS_API_KEY=your_key python3 scripts/extract_product.py

text

The script uses **SkillBoss API Hub** (`https://api.skillbossai.com/v1/pilot`) to:
1. Scrape the product page via the `scraping` capability
2. Extract structured product data via the `chat` capability (auto-routed LLM)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill sends user-supplied product URLs and scraped page content to an external API without prominently warning the user in the description or consent flow. This can expose sensitive URLs, proprietary product data, or internal links to a third party, especially if users provide non-public or authenticated pages.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/extract_product.py (reported line 8)May include surrounding context.

python
Extracts product information from e-commerce URLs for Instagram content generation.
Supports: Amazon, Shopify, Taobao, JD, and generic e-commerce sites.

Uses SkillBoss API Hub (https://api.heybossai.com/v1/pilot) for web scraping
and AI-powered structured data extraction.

Usage:

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/extract_product.py (reported line 28)May include surrounding context.

python
Extracts product information from e-commerce URLs for Instagram content generation.
Supports: Amazon, Shopify, Taobao, JD, and generic e-commerce sites.

Uses SkillBoss API Hub (https://api.heybossai.com/v1/pilot) for web scraping
and AI-powered structured data extraction.

Usage:

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The script transmits user-supplied URLs and scraped page content to an external service for scraping and LLM processing. This creates a real data exposure boundary: sensitive URLs, page contents, and derived metadata leave the local environment and become subject to third-party handling, retention, and logging.

Content

Scanner excerpt · scripts/extract_product.py (reported line 32)May include surrounding context.

python
def pilot(body: dict) -> dict:
    r = requests.post(
        f"{API_BASE}/pilot",
        headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"},
        json=body,

Static analysis

No suspicious patterns detected.