Back to skill

Security audit

WeChat MP Assistant

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent WeChat account-management purpose, but it asks for account credentials and advertises publishing automation without enough user-control and secret-handling guardrails.

Install only in an isolated Python environment, pin and review dependencies, and do not store the WeChat secret in committed configuration files. Before letting the agent publish or sync content, require explicit confirmation of the exact account, platform, content, schedule, and ability to cancel or revert.

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:36
Finding
Unpinned Third-Party Python Dependencies## Vulnerability Details **File Location**: `SKILL.md`, lines 36-39 **Vulnerability Type**: Unpinned third-party dependencies and insufficient supply-chain integrity controls **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown ### Installation ```bash pip install requests wechatpy ``` ``` ### Technical Analysis The installation command retrieves `requests` and `wechatpy` without specifying reviewed versions or validating package integrity with cryptographic hashes. Consequently, the exact code installed may change over time and depends on the configured Python package index, resolver behavior, and current dependency metadata. Python packages may run package-controlled build or installation logic, and their modules execute code when imported. If a named package, one of its transitive dependencies, or the configured package repository is compromised, following this instruction could introduce attacker-controlled code. The project provides no lock file, hash-verified requirements file, trusted-index restriction, or documented dependency review process. This finding does not establish that either named package is currently malicious. It identifies the absence of controls needed to make dependency installation reproducible and resistant to a future package or repository compromise. ### Attack Path 1. An attacker compromises a referenced package, one of its transitive dependencies, or a package source trusted by the victim's `pip` configuration. 2. The attacker publishes a malicious release that remains compatible with the unconstrained dependency specification. 3. A user follows the documented `pip install requests wechatpy` instruction. 4. The package resolver selects and downloads the attacker-controlled release. 5. Malicious code executes during package build or installation, or when the installed module is subsequently imported. 6. The code operates with the privileges and environmental access of the u ...[truncated 740 chars]
Remediation
## Remediation Suggestions 1. Pin every direct dependency to an exact, security-reviewed version. 2. Resolve and pin all transitive dependencies in a committed lock file. 3. Require cryptographic hashes for downloaded distributions, such as through a hash-locked requirements file and `pip install --require-hashes`. 4. Install only from explicitly configured, trusted package indexes over authenticated TLS; disable unintended supplemental indexes where dependency confusion is possible. 5. Regularly scan the lock file for known vulnerabilities and update dependencies through a controlled review and testing process. 6. Perform installation and execution inside a least-privileged virtual environment or isolated container, never as an administrator unless strictly required. 7. Document package provenance and verify that the imported `mp_assistant` implementation is supplied by the intended, reviewed project rather than relying on an ambiguous or unavailable module.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill advertises scheduled posting and multi-platform synchronization, which are actions capable of modifying external accounts and publishing content, but it does not warn users that these operations may have side effects. In an automation-oriented skill, this omission increases the risk of unintended posting, account misuse, or operator surprise if the capability is later implemented or invoked through agent workflows.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The configuration example requests an AppID and App Secret for a WeChat Official Account without any guidance on secure storage, least-privilege handling, or avoiding hardcoding secrets in files. This can lead users to place sensitive credentials directly into configuration artifacts, increasing the chance of credential leakage, account takeover, or abuse of the connected official account.

Static analysis

No suspicious patterns detected.