Back to skill

Security audit

agent-orchestration

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Markdown guide for agent prompting and tracking, with a visible optional third-party API example that users should treat carefully.

Install only if you are comfortable with a skill that teaches agents to maintain local tracking notes and, if you use the SkillBoss example, send selected prompt messages to SkillBoss. Do not include credentials, private code, customer data, or sensitive conversation history in API-routed messages without explicit approval.

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

Unrestricted Transmission of Potentially Sensitive Prompt Content to a Third-Party API

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 183-195
Vulnerability Type: Sensitive data transmission without minimization, redaction, or explicit consent
Risk Level: Medium

Vulnerable Code

python
import requests, os

SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

def call_llm(messages, prefer="balanced"):
    r = requests.post(
        "https://api.skillboss.co/v1/pilot",
        headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"},
        json={"type": "chat", "inputs": {"messages": messages}, "prefer": prefer},
        timeout=60,
    )
    return r.json()["result"]["choices"][0]["message"]["content"]

Technical Analysis

The example sends the complete messages collection to https://api.skillboss.co/v1/pilot. In orchestration, coding, and research workflows, these messages may contain proprietary source code, internal file paths, conversation history, personal information, credentials, or other confidential workspace data.

The implementation does not:

  • Require explicit approval before external transmission.
  • Restrict which message fields may be transmitted.
  • Detect or redact secrets and personal data.
  • Warn users that their content is processed by a third party.
  • Provide a local-only default for the Skill's core prompt-templating functionality.
  • Validate the HTTP status before parsing the response.

The API key is retrieved from an environment variable and used as authorization for the declared endpoint. There is no evidence that the key is hardcoded, logged, or sent to an unrelated destination. The principal risk is therefore disclosure of message content rather than credential theft.

This remote model-routing behavior is not necessary for the Skill's core local functionality—prompt construction, agent tracking, and reusable templates—and consequently expands the trust boundary beyond the minimum privilege ...[truncated 1844 chars]

Remediation
View remediation

Remediation Suggestions

  1. Make external processing explicitly opt-in

    • Keep prompt construction and agent tracking local by default.
    • Require informed user approval before sending any workspace or conversation content to SkillBoss.
    • Display the destination hostname and categories of data being transmitted.
  2. Minimize transmitted data

    • Send only the messages required for the immediate task.
    • Exclude unrelated conversation history, system metadata, local paths, and full files unless necessary.
    • Apply configurable size and field allowlists.
  3. Add sensitive-data controls

    • Scan outgoing content for API keys, tokens, private keys, passwords, connection strings, and personal data.
    • Redact detected values or block transmission pending user confirmation.
    • Never rely solely on users remembering to remove secrets manually.
  4. Document the external trust boundary

    • Clearly identify SkillBoss as a third-party processor.
    • Link to applicable privacy, retention, deletion, and model-training policies.
    • Explain whether requests may be forwarded to additional model providers.
  5. Provide safer deployment options

    • Offer a local-model or user-configured endpoint option.
    • Permit organizations to disable external routing centrally.
    • Support destination allowlists and enterprise data-loss-prevention controls.
  6. Harden request and response handling

    • Call r.raise_for_status() before parsing the response.
    • Validate the expected response schema.
    • Handle timeouts, malformed responses, and connection failures without logging request bodies or credentials.
    • Avoid including sensitive prompt content in exceptions or diagnostic logs.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (8)

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 · SKILL.md (reported line 175)May include surrounding context.

md
**Prompt portability is a myth.**

Different tasks need different capabilities. With SkillBoss API Hub, you call a single endpoint (`https://api.skillboss.co/v1/pilot`) and use the `prefer` parameter to auto-route to the best available model for your task.

| Task Profile | prefer setting | Best For |
|-------------|---------------|----------|

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 · SKILL.md (reported line 190)May include surrounding context.

md
**Prompt portability is a myth.**

Different tasks need different capabilities. With SkillBoss API Hub, you call a single endpoint (`https://api.skillboss.co/v1/pilot`) and use the `prefer` parameter to auto-route to the best available model for your task.

| Task Profile | prefer setting | Best For |
|-------------|---------------|----------|

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

This finding is substantively the same external transmission issue: the example performs a POST to https://api.skillboss.co/v1/pilot and includes caller-supplied content in the JSON body. Because the skill teaches orchestration and prompt construction, users may forward sensitive internal context to the external service by default, making the lack of warnings and controls security-relevant.

Content

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

md
SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

def call_llm(messages, prefer="balanced"):
    r = requests.post(
        "https://api.skillboss.co/v1/pilot",
        headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"},
        json={"type": "chat", "inputs": {"messages": messages}, "prefer": prefer},

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

This finding is substantively the same external transmission issue: the example performs a POST to https://api.skillboss.co/v1/pilot and includes caller-supplied content in the JSON body. Because the skill teaches orchestration and prompt construction, users may forward sensitive internal context to the external service by default, making the lack of warnings and controls security-relevant.

Content

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

md
SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

def call_llm(messages, prefer="balanced"):
    r = requests.post(
        "https://api.skillboss.co/v1/pilot",
        headers={"Authorization": f"Bearer {SKILLBOSS_API_KEY}", "Content-Type": "application/json"},
        json={"type": "chat", "inputs": {"messages": messages}, "prefer": prefer},

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill instructs users to maintain and update repository files such as notes/areas/active-agents.md and LEARNINGS.md without clearly warning that using the skill will modify the local workspace. In an agent setting, undocumented file writes can surprise users, pollute repositories, and lead to unintended persistence of operational data or sensitive project context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This template explicitly guides an agent to create files, code, scripts, configurations, and tools, but it does not require any user-facing safety confirmation, permission check, or warning before making system-impacting changes. In an agent context, that omission can normalize direct filesystem modification and setup actions in arbitrary locations, increasing the chance of unintended overwrite, destructive changes, or unsafe execution chains.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The template directs the agent to 'run the code/script to verify it works' and to iterate until all user stories pass, but it provides no warning about execution risk, sandboxing, or approval requirements. That encourages autonomous execution of newly generated or modified code, which could trigger unintended commands, network access, data loss, or privilege misuse if the generated artifact is unsafe or the task context is adversarial.

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 · templates/builder-agent.md (reported line 223)May include surrounding context.

md
| No technical constraints | Agent might use incompatible tools |
| Missing output path | Files end up in wrong place |
| No Ralph mode for complex tasks | Agent gives up too early |
| No verification step | Agent declares done without testing |

---

Static analysis

No suspicious patterns detected.