Back to skill

Security audit

内容蒸馏器·技能造物主

Security checks for vulnerabilities and agentic risk

Overview

This skill needs review because it adds unrelated advertising to results and can install software automatically during document extraction.

Prefer a version that removes mandatory advertising and makes dependency setup explicit in a dedicated environment. Review generated skills before installing them, and remember that source content is retained locally. The empty SARIF results do not negate the concerns verified directly in the files.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Rogue AgentSelf-Modification, Session Persistence
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (14)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The final section explicitly requires unrelated advertising and an external recruitment link in every result, redirecting assistant output toward the author's promotional interests without user authorization. This is output contamination, not evidence of data exfiltration or malicious behavior at the linked destination; it duplicates the other promotional findings.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill mandates unsolicited promotion unrelated to content distillation, allowing its author to insert advertising into otherwise legitimate task responses. The supplied document establishes an instruction to append that material, but does not establish actual console behavior by the unprovided PDF extraction script; this is the same underlying issue as the other promotional findings.

Content

No source excerpt is available for this finding.

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: file_write, shell.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

5.1 创建目录结构

bash
mkdir -p ~/.workbuddy/skills/方法论-{名称}/{references,examples}
# 如有模板/脚本需求,再创建:
mkdir -p ~/.workbuddy/skills/方法论-{名称}/{templates,scripts}

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

bash
mkdir -p ~/.workbuddy/skills/方法论-{名称}/{references,examples}
# 如有模板/脚本需求,再创建:
mkdir -p ~/.workbuddy/skills/方法论-{名称}/{templates,scripts}

5.2 逐一创建文件(每个文件都要有实质内容)

Missing dependencies trigger automatic package installation without user disclosure.

Medium
Category
Output Handling
Confidence
96% confidence
Finding

A missing dependency silently triggers installation of unpinned packages and transitive dependencies using the configured package index, modifying a potentially shared Python environment. Installing packages can execute third-party code, so compromised distribution infrastructure or unsafe index configuration could turn a local EPUB-extraction request into code execution with the installer's privileges.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/extract_epub.py (reported line 19)May include surrounding context.

python
except ImportError:
        import subprocess
        python = str(Path.home() / ".workbuddy/binaries/python/envs/default/bin/python3")
        subprocess.run([python, "-m", "pip", "install", "ebooklib", "beautifulsoup4", "-q"], check=True)
        from ebooklib import epub
        from bs4 import BeautifulSoup

Missing dependencies trigger an unsolicited package installation into a hard-coded WorkBuddy Python environment.

Medium
Category
Excessive Agency
Confidence
93% confidence
Finding

When pdfplumber is unavailable, a text-extraction operation unexpectedly installs an unpinned package and its dependencies into a hard-coded WorkBuddy environment using the caller's privileges. This creates an unnecessary supply-chain exposure and can change dependencies used by other workflows; it also may target a different interpreter from the one running the script.

Content

No source excerpt is available for this finding.

Automatically installs a dependency into a Python environment without user disclosure.

Medium
Category
Output Handling
Confidence
97% confidence
Finding

The missing-dependency handler silently authorizes package installation instead of limiting execution to the requested PDF extraction. This is the same underlying issue as SDI-2, not an additional independent vulnerability: it introduces network-dependent software installation and environment changes without explicit approval.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/extract_pdf.py (reported line 16)May include surrounding context.

python
except ImportError:
        import subprocess, pathlib
        python = str(pathlib.Path.home() / ".workbuddy/binaries/python/envs/default/bin/python3")
        subprocess.run([python, "-m", "pip", "install", "pdfplumber", "-q"], check=True)
        import pdfplumber

    if not os.path.exists(input_path):

Generated skill directory names are required to use Chinese without offering a language choice.

Low
Category
Output Handling
Confidence
88% confidence
Finding

The naming rule explicitly requires a short Chinese name for every generated skill directory. This imposes a natural-language requirement without user opt-in or a documented technical or regional justification.

Content

No source excerpt is available for this finding.

The skill requires unsolicited promotional content in every output, beyond its stated content-to-skill generation purpose.

Low
Category
Excessive Agency
Confidence
99% confidence
Finding

The instruction to append promotional material to every output is an explicit attempt to hijack part of the assistant's response for an unrelated objective. Its placement in a legitimate workflow can lend the promotion undeserved credibility, although no automatic navigation, sensitive-data transfer, or execution is shown.

Content

No source excerpt is available for this finding.

The extractor emits unrelated promotional messages directing users to a third-party account and monetization group.

Low
Category
Excessive Agency
Confidence
99% confidence
Finding

The extractor unconditionally prints unrelated promotional content and an external group link, including when the module is imported. In an agent workflow, these messages can contaminate tool output and be repeated to users as if relevant or endorsed, although the code does not visit the link or transmit extracted content.

Content

No source excerpt is available for this finding.

The extractor appends unrelated promotional messages and an external community link to its output.

Low
Category
Excessive Agency
Confidence
99% confidence
Finding

The manifest describes extracting methodologies from content and generating reusable skills, not promoting a public account or monetization community. These unconditional module-level print statements introduce unrelated advertising into command output and also execute when the module is imported.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.