Back to skill

Security audit

Python Toolkit Free

Security checks for vulnerabilities and agentic risk

Overview

This Python helper is not overtly malicious, but it asks for broad file-writing and command-running authority without clear limits.

Install only if you are comfortable with a Python guidance skill that may run shell commands and modify project files. Before use, require explicit approval for any pip/uv install, formatter fix, export/save/convert action, or deployment-related command, and prefer pinned dependencies from a reviewed project manifest.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:222
Finding

Unpinned Arbitrary Python Dependency Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 222-228
Vulnerability Type: Unverified and unpinned third-party dependency installation
Risk Level: Medium

bash
if command -v uv &>/dev/null; then
    uv pip install <package>
    uv pip compile requirements.in -o requirements.txt
else
    pip install <package>
fi

Technical Analysis

The Skill instructs the Agent to install an arbitrary package using uv pip install or pip install. The package placeholder is not restricted by an allowlist, exact version, cryptographic hash, trusted lockfile, or provenance policy. The instructions also do not require explicit user confirmation before installation.

Consequently, a package name influenced by an untrusted prompt or repository could resolve to a typosquatted, dependency-confused, compromised, or attacker-published distribution. Python package installation can invoke build backends and related installation-time behavior, while subsequent imports or tool execution can run package-controlled code.

The document does not identify a specific malicious package and does not itself retrieve a known malicious payload. The issue is therefore an insecure supply-chain pattern rather than confirmed malicious behavior.

Attack Path

  1. An attacker places a crafted dependency recommendation in user input, project documentation, or other content processed by the Agent.
  2. The crafted name resembles a legitimate package, exploits dependency confusion, or points to an attacker-controlled public package.
  3. The Agent applies the generic dependency-installation instructions without requiring approval or validating the package against a trusted manifest.
  4. uv pip install or pip install retrieves and installs the attacker-controlled distribution.
  5. Malicious behavior executes through package build or installation mechanisms, or when the installed package is subsequently imported or invoked.
  6. The package operates with the privile ...[truncated 926 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require explicit user approval before installing or upgrading any third-party package.
  2. Accept dependencies only from a reviewed project manifest, lockfile, or organization-controlled allowlist; never install a package name obtained solely from untrusted prompt or repository text.
  3. Pin exact package versions and verify integrity with cryptographic hashes. For pip workflows, use a fully reviewed requirements file with --require-hashes.
  4. Configure trusted package indexes explicitly and prevent unintended fallback to public registries where private package names are involved.
  5. Install dependencies inside an isolated virtual environment with minimal filesystem, credential, and network access.
  6. Display the package name, version, source index, resolved dependency changes, and planned command before execution.
  7. Review package provenance, maintainership, release history, and dependency graph before approving a new dependency.
  8. Separate dependency resolution from installation so the resolved artifacts can be inspected before any package-controlled code is run.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (8)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The description explicitly highlights "中文友好的规范讲解," and the document is written as a Chinese-only experience without indicating that users may choose another language. This can be a language/locale policy issue when a skill imposes a specific language without opt-in.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Declaring write and exec tools for a skill marketed as coding guidance violates least privilege and creates unnecessary capability for filesystem modification and shell execution. If auto-invoked, the agent may execute commands or alter files when the user only expected advisory output, which raises the risk of harmful side effects.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The auto-activation trigger is broad enough to match routine discussion of Python or coding style, causing the skill to engage in many contexts where the user did not specifically request it. Combined with declared exec/write capabilities, over-broad triggering raises the risk of unintended tool use and unsafe actions being framed as normal assistance.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill is presented as a Python style and best-practices advisor, but these sections redefine it as a generic parameterized operation layer supporting create/query/modify/delete/export behaviors. That scope expansion can mislead an agent into treating ordinary requests as authorization to perform broader state-changing actions, increasing the chance of unsafe file or command execution beyond the user’s likely expectation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

Describing modify/reset/import/create/export-style operations without warning about data impact normalizes state-changing behavior and obscures the risk to user files or configuration. In a skill that also exposes write/exec, this omission can lead users and agents to treat destructive or persistent actions as routine.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

Export/save/convert operations are listed as supported output behaviors without indicating that they may create or overwrite files. That lack of disclosure is risky because it can cause silent persistence of generated content or accidental data loss when the skill is used in an automated agent flow.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger condition states the skill should be used for broad categories such as code generation, programming assistance, debugging, testing, and deployment, which far exceed a limited style-guidance role. This ambiguity can cause the agent to over-apply the skill and potentially use privileged tools in contexts that are operational rather than advisory.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
75% confidence
Finding

The documentation repeatedly narrows the skill to personal Python coding conventions and explicitly excludes operations-oriented scenarios such as 运维部署管理. Yet the trigger condition says to use it for 开发部署, which contradicts the earlier limitation and broadens intent beyond the declared supported scope.

Content

No source excerpt is available for this finding.