Back to skill

Security audit

Code Audit Pro

Security checks for vulnerabilities and agentic risk

Overview

The skill is not clearly malicious, but it needs review because its security-audit claims are much broader than its actual scanner and its installer changes the Python environment with unpinned packages.

Install only if you are comfortable with a Chinese-language, local regex-based scanner rather than the comprehensive audit product described. Review install.sh first, prefer a disposable virtual environment, and avoid relying on this skill as a complete security review or PR gate.

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
install.sh:11
Finding
Unpinned Dependencies Installed from the Active Python Package Index## Vulnerability Details **File Location**: `install.sh`, line 11 **Vulnerability Type**: Insecure third-party dependency installation **Risk Level**: Medium ### Vulnerable Code ```bash pip install flake8 bandit 2>/dev/null && echo " ✅ flake8 + bandit 已安装" || echo " ⚠️ 部分安装失败,可手动: pip install flake8 bandit" ``` ### Technical Analysis The installer retrieves and installs `flake8`, `bandit`, and their transitive dependencies without pinning versions or verifying package hashes. It also relies on the invoking environment's active package index and pip configuration. Consequently, the exact code installed can change after the Skill has been reviewed. Python package installation may execute package build or installation logic with the privileges of the user running `install.sh`. A compromised package release, dependency, configured package index, or dependency-resolution path could therefore introduce attacker-controlled code. Redirecting standard error to `/dev/null` conceals diagnostic and security-relevant installation messages, making unexpected index behavior, certificate problems, build failures, and dependency conflicts harder to investigate. ### Attack Path 1. An attacker compromises an upstream package, one of its transitive dependencies, or a package index selected through the user's pip configuration. 2. The attacker publishes a malicious version that remains compatible with the unbounded dependency request. 3. A user runs `bash install.sh`. 4. Pip resolves and downloads the attacker-controlled release. 5. Malicious build or installation logic executes with the invoking user's privileges. 6. The installed package can subsequently execute again when imported or invoked. This is a supply-chain exposure rather than evidence that the currently named packages are malicious. ### Impact Assessment Successful exploitation could execute arbitrary code under the account running the installer. That code could access files and credentials available to th ...[truncated 520 chars]
Remediation
## Remediation Suggestions 1. Pin every direct dependency to a reviewed version: ```text flake8==REVIEWED_VERSION bandit==REVIEWED_VERSION ``` 2. Generate a locked dependency file containing all transitive dependencies and cryptographic hashes. 3. Install with hash enforcement: ```bash python3 -m pip install \ --require-hashes \ --only-binary=:all: \ -r requirements-audit.txt ``` 4. Explicitly select the trusted package index rather than implicitly accepting environment-controlled pip configuration where deployment policy permits. 5. Install into a dedicated virtual environment with no administrative privileges. 6. Review and periodically update pinned dependencies through a controlled process. 7. Do not discard standard error. Preserve installation diagnostics and fail clearly if dependency installation is unsuccessful. 8. Consider making these tools optional because the current `scripts/audit.py` implementation does not invoke either dependency.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (10)

Tp4

High
Category
MCP Tool Poisoning
Confidence
84% confidence
Finding
The documented capabilities materially overstate what the skill appears to implement, including PR review, incremental scanning, style review, and broad logic analysis. Security tooling that misrepresents coverage can create dangerous false assurance, causing users to trust scans that do not actually check the claimed attack surfaces or code-quality dimensions.

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill advertises behaviors that imply file access, shell execution, environment access, and possible network use, but it declares no explicit tool scope or permissions boundary. In an agent ecosystem, this increases the chance of over-broad execution and makes it harder for users or platforms to enforce least privilege, especially when the skill also encourages automatic actions like running installers or repository inspection.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
The skill is presented entirely as a Chinese-language experience (for example, Chinese description, triggers, and output templates) with no indication that users may opt into another language. That constitutes a locale/language policy concern because the skill appears to impose a specific language by default without user choice or documented justification.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The documentation tells users to run a shell installer, introducing package installation and arbitrary command execution beyond pure code-audit behavior. This is dangerous because users may execute unreviewed local scripts with their own privileges, potentially leading to supply-chain compromise, persistence, or unwanted system modification.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger phrases for activating the skill are broad and can match ordinary requests for help or review, causing the skill to run in contexts the user did not clearly intend. Because this skill may inspect files or initiate deeper analysis workflows, overbroad activation increases the risk of unexpected data access or unnecessary command execution.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The PR-review triggers include everyday phrases like checking a PR or reviewing changes without clearly constraining what data will be accessed. In the context of a skill that claims it will inspect diffs automatically, this ambiguity can lead to unintended repository scanning or activation on loosely related user prompts.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The script's comments and all user-visible echo output are in Chinese, and there is no indication that the user can select another language. This creates a language policy issue if the skill is expected to be usable generally rather than as a clearly documented Chinese-only tool.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The module docstring and user-facing description are written entirely in Chinese, presenting the skill as a Chinese-language audit engine without offering any language choice. This can violate language/locale policy when users are not given an explicit opt-in or alternative locale.

Missing User Warnings

Low
Confidence
92% confidence
Finding
The skill states it will automatically run git diff in the working directory without a clear warning or explicit consent step. Even though git diff is read-oriented, it can expose sensitive source code, secrets in uncommitted changes, or private repository metadata to the agent unexpectedly.

Missing User Warnings

Low
Confidence
89% confidence
Finding
This shell script performs a package installation via pip, which changes the user's environment and may download code from external sources. Although the script prints progress messages, it does not clearly disclose that it will perform network-backed package installation or modify the local Python environment.

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/audit.py:57