Back to skill

Security audit

mar-document-pro

Security checks for vulnerabilities and agentic risk

Overview

This document-processing skill is coherent, but it can send full document contents to a third-party API without a clear consent, minimization, or redaction step.

Review before installing, especially if you handle confidential, personal, legal, financial, medical, or proprietary documents. Use it only when users understand that document text may be sent to SkillBoss API Hub, and prefer a version that asks before remote analysis, redacts sensitive content, and documents retention and credential-handling practices.

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

Error
Location
SKILL.md:91
Finding

Unrestricted Transmission of Complete Document Contents to a Third-Party API

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 91–113
Vulnerability Type: Sensitive data exposure through unrestricted external transmission
Risk Level: High

Vulnerable Code

python
API_BASE = "https://api.heybossai.com/v1"

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,
        timeout=60,
    )
    return r.json()

# Extract document text, then call SkillBoss API Hub for summary analysis
def analyze_document(doc_text: str) -> str:
    result = pilot({
        "type": "chat",
        "inputs": {
            "messages": [
                {"role": "system", "content": "You are a document analysis assistant. Extract the key points and produce a structured summary."},
                {"role": "user", "content": f"Please analyze the following document content:\n\n{doc_text}"}
            ]
        },
        "prefer": "balanced"
    })
    return result["result"]["choices"][0]["message"]["content"]

Technical Analysis

The analyze_document function inserts the complete extracted document text into a request sent to https://api.heybossai.com/v1/pilot. Although remote analysis is disclosed as part of the Skill's functionality, the implementation provides no explicit consent gate, local-only alternative, data-classification check, secret detection, personal-data redaction, content minimization, or transmission-size restriction.

Consequently, all extracted content—including potentially confidential, personal, financial, legal, medical, or proprietary information—is eligible for transmission to a third party. Making full-content remote submission the standard analysis workflow exceeds the minimum privileges necessary because local extraction and some forms of local processing can be performed without external d ...[truncated 2234 chars]

Remediation
View remediation

Remediation Suggestions

  1. Require explicit, informed, document-specific user consent before any content is transmitted. Clearly identify the destination, the data to be sent, and the purpose of processing.
  2. Default to local extraction and local analysis where feasible. Provide a clearly selectable local-only mode that performs no network requests.
  3. Apply content minimization. Send only the portions required for the requested operation rather than the complete document.
  4. Detect and redact credentials, API keys, personal information, financial identifiers, and other sensitive fields before transmission.
  5. Introduce data-classification controls that block remote processing of confidential or regulated documents unless an approved policy explicitly permits it.
  6. Enforce content-size and request-count limits. If chunking is necessary, preserve the same consent, redaction, and classification controls for every chunk.
  7. Restrict outbound traffic to an administratively approved domain allowlist and verify TLS certificates through the standard trusted certificate store.
  8. Document the external provider's retention, deletion, access, subprocessors, geographic processing, and model-training policies.
  9. Add robust response handling, including r.raise_for_status(), expected content-type verification, response-schema validation, and safe error reporting that does not expose document content or credentials.
  10. Avoid recording request bodies, authorization headers, extracted text, or provider responses in logs unless logs are explicitly secured and appropriately redacted.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill instructs sending extracted document text to SkillBoss API Hub for AI analysis but does not warn users that their document contents may leave the local environment. This is dangerous because documents often contain confidential business, legal, financial, or personal data, and silent third-party transmission creates a significant privacy and compliance risk.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The top-level description says the skill triggers whenever users ask to analyze, extract, summarize, or convert documents, which is broad enough to activate on many ordinary requests without clear consent boundaries. In this skill, that broad activation is more dangerous because the workflow later sends extracted document text to an external API, so over-triggering can lead to unintended disclosure of user documents.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The skill declares a required API credential but provides no guidance about safe handling, scoping, rotation, or that use of the credential implies third-party processing. While the key itself is not exposed in the file, missing handling notes increases the chance of insecure deployment and obscures the security implications of enabling the integration.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The listed trigger scenarios are ambiguous phrases like 'analyze', 'summarize', or asking about specific document information, without defining activation boundaries. Because this skill can read document contents and forward them to a third-party API, vague triggers increase the chance of the skill handling sensitive files when the user did not intend remote analysis.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

Hardcoding the external API base URL confirms that this skill depends on a remote service for analysis. That is not malicious by itself, but in combination with document ingestion and missing disclosure, it increases privacy, sovereignty, and compliance risk because user content may be transferred outside the local trust boundary.

Content

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

md
import requests, os

SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]
API_BASE = "https://api.heybossai.com/v1"

def pilot(body: dict) -> dict:
    r = requests.post(

External Transmission

Medium
Category
Data Exfiltration
Confidence
99% confidence
Finding

The code performs an authenticated POST request to an external API and is designed to send extracted document content for remote analysis. External transmission is expected functionality here, but it remains security-relevant because sensitive document data may be exfiltrated to a third party if users are not clearly informed or if the skill is triggered too broadly.

Content

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

md
API_BASE = "https://api.heybossai.com/v1"

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,

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The workflow instructs the skill to '用中文总结给用户,' which imposes a specific language on all users. This is a natural-language policy issue because no opt-in, language selection, or region-specific justification is provided.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.