Back to skill

Security audit

critical-article-writer

Security checks for vulnerabilities and agentic risk

Overview

This is mostly a writing-guidance skill, but it directs users to send prompts and an API key to a third-party service without enough privacy or data-handling disclosure.

Install only if you are comfortable sending the prompts and context you provide to SkillBoss API Hub. Use a dedicated, revocable API key, do not include secrets or confidential drafts unless your policy permits it, and consider using the markdown guidance locally with your existing model instead of the API example.

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:261
Finding

Undisclosed Transmission of User Content to a Third-Party API

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 261-296
Vulnerability Type: Third-party transmission of potentially sensitive user content without adequate privacy or data-minimization guidance
Risk Level: Medium

Vulnerable Code

python
import requests, os

SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

response = requests.post(
    "https://api.heybossai.com/v1/pilot",
    headers={
        "Authorization": f"Bearer {SKILLBOSS_API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "type": "chat",
        "inputs": {
            "messages": [
                {
                    "role": "system",
                    "content": "You are a critical article writer with sharp analytical voice."
                },
                {
                    "role": "user",
                    "content": "Draft an outline for an article arguing that [topic] is [position]"
                }
            ]
        },
        "prefer": "balanced"
    }
)
text = response.json()["result"]["choices"][0]["message"]["content"]

The same integration is presented as an installation step in README.md, lines 18-22:

markdown
## Installation via SkillBoss API Hub

1. **Set your API key** as environment variable: `SKILLBOSS_API_KEY=your_key_here`
2. **Call the skill** via SkillBoss API Hub at `https://api.heybossai.com/v1/pilot`
3. **Begin using:** Send a `chat` type request with the skill system prompt and your article request

Technical Analysis

The example sends the complete messages payload to https://api.heybossai.com/v1/pilot, including the user's article topic, position, evidence, audience information, or any other context placed in the prompt. It also sends SKILLBOSS_API_KEY as a bearer credential.

The endpoint is explicitly documented and uses HTTPS, so the behavior is not covert exfiltration and the API key is ...[truncated 2857 chars]

Remediation
View remediation

Remediation Suggestions

  1. Make external processing explicitly optional. Present the writing instructions as locally usable and describe the SkillBoss integration as an optional provider example rather than a required installation step.

  2. Obtain informed consent. Before showing or invoking the integration, clearly state that prompts will leave the user's environment and identify the destination service.

  3. Document data handling. Link to the provider's privacy, retention, deletion, training, and subprocessor policies. Explain whether requests may be routed to additional model providers.

  4. Minimize transmitted data. Send only content required for generation. Do not include unrelated conversation history, metadata, files, or environment values.

  5. Add redaction guidance. Warn users not to submit secrets, credentials, personal data, regulated information, confidential source material, or proprietary drafts unless organizational policy permits it.

  6. Constrain credential scope. Recommend a dedicated, least-privileged API key with limited quota, rotation support, and revocation procedures. Never log the authorization header.

  7. Harden request handling. Add a timeout, status validation, bounded response processing, schema checks, and controlled error handling:

    python
    response = requests.post(
        "https://api.heybossai.com/v1/pilot",
        headers={
            "Authorization": f"Bearer {SKILLBOSS_API_KEY}",
            "Content-Type": "application/json",
        },
        json=minimized_payload,
        timeout=30,
    )
    response.raise_for_status()
    
    data = response.json()
    text = data["result"]["choices"][0]["message"]["content"]
    
  8. Provide a local alternative. Include instructions for applying the style prompt directly to the user's chosen model without requiring this third-party endpoint.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

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

md
1. Share examples of articles you want to emulate
2. Point out specific phrases or techniques you want more/less of
3. Reference the checklists to identify tone issues
4. Update SKILL.md with clarifications
5. Reload the skill in Claude Desktop

---

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · instructions/outline-templates.md (reported line 124)May include surrounding context.

text
CLAIM:
[Clear statement of position]

EVIDENCE LAYER 1:
[Data point with source]

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · README.md (reported line 21)May include surrounding context.

md
## Installation via SkillBoss API Hub

1. **Set your API key** as environment variable: `SKILLBOSS_API_KEY=your_key_here`
2. **Call the skill** via SkillBoss API Hub at `https://api.heybossai.com/v1/pilot`
3. **Begin using:** Send a `chat` type request with the skill system prompt and your article request

## How to Use This Skill

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill explicitly documents routing user prompts and contextual article inputs to a third-party API service, but it provides no privacy notice, consent requirement, or guidance about handling sensitive data. Because this is a writing skill likely to receive proprietary drafts, strategy, or unpublished material, users may unknowingly transmit confidential content off-platform.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

The skill states that it is powered by SkillBoss API Hub and identifies a specific external endpoint, which establishes that use of the skill depends on third-party processing. In context, this is not malicious by itself, but it becomes a security/privacy issue because the documentation lacks accompanying warnings about external sharing, confidentiality, or data governance.

Content

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

md
## Integration with SkillBoss API Hub

This skill is powered by **SkillBoss API Hub** (`https://api.heybossai.com/v1/pilot`), which automatically routes requests to the optimal large language model for content generation tasks.

**Environment Variable Required:**
- `SKILLBOSS_API_KEY` — unified API key for all SkillBoss API Hub capabilities

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This finding refers to the same request block showing structured prompt data being sent to an external API with authorization headers. The risk is unintended disclosure of sensitive drafting instructions, business context, or private source material to an external processor without transparent notice to the user.

Content

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

md
SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

response = requests.post(
    "https://api.heybossai.com/v1/pilot",
    headers={
        "Authorization": f"Bearer {SKILLBOSS_API_KEY}",

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This finding refers to the same request block showing structured prompt data being sent to an external API with authorization headers. The risk is unintended disclosure of sensitive drafting instructions, business context, or private source material to an external processor without transparent notice to the user.

Content

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

md
SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

response = requests.post(
    "https://api.heybossai.com/v1/pilot",
    headers={
        "Authorization": f"Bearer {SKILLBOSS_API_KEY}",

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The documented endpoint use, immediately adjacent to the authorization setup, reinforces a direct integration pattern where user content is sent off-system to a vendor service. In a content-generation skill, this is particularly relevant because users may paste unpublished articles, client information, or internal strategy into prompts, increasing confidentiality risk.

Content

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

md
SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

response = requests.post(
    "https://api.heybossai.com/v1/pilot",
    headers={
        "Authorization": f"Bearer {SKILLBOSS_API_KEY}",
        "Content-Type": "application/json"

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This markdown file tells users to place SKILLBOSS_API_KEY in an environment variable and send requests to an external API endpoint, but it does not include any caution that the key is sensitive or should be stored securely. For markdown files, missing warnings about behaviors affecting privacy or system integrity should be flagged when omitted.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
6% confidence
Finding

SQP-3 is limited to natural-language organizational policy violations such as forcing a specific language or locale without user opt-in. This file is written in English, but it does not instruct users to respond only in a particular language or impose a locale restriction, so it does not meet the rule criteria.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.