Back to skill

Security audit

WeChat Article Full Reader

Security checks for vulnerabilities and agentic risk

Overview

This WeChat article reader is purpose-aligned, but it needs Review because its helper script can fetch unrestricted URLs and write predictable files to caller-chosen paths.

Install only if you are comfortable with a skill that opens supplied article URLs, extracts page text, downloads images, and stores them locally. Prefer using it only on genuine WeChat article links, choose a dedicated empty output folder, and review or modify the script to enforce host allowlists and safer output-path handling before using it on untrusted links.

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
scripts/read_article.sh:7
Finding

Unrestricted URL Access and Arbitrary-Path File Overwrite

Content
View full analysis
200 || h > 200)) { urls.push(dataSrc.split('#')[0]); } ``` ```bash curl -s -o "$OUTPUT_DIR/images/$filename" "$url" || true ``` The script also writes predictable files beneath the caller-controlled directory: ```bash " 2>&1 | tail -1 > "$OUTPUT_DIR/article.json" ``` ```bash " 2>&1 | tail -1 > "$OUTPUT_DIR/image_urls.txt" ``` ### Technical Analysis The script accepts an article URL directly from its first argument and passes it to `agent-browser` without parsing the URL or enforcing the documented `mp.weixin.qq.com` host restriction. Consequently, any HTTP or HTTPS destination accepted by the browser can be accessed. The page subsequently controls the image URLs extracted from `data-src` attributes. Validation only checks that a value begins with `http` and that its displayed dimensions exceed a threshold. It does not enforce the documented `mmbiz.qpic.cn` image host, require HTTPS, restrict ports, validate DNS results, block private address ranges, or control redirects. A malicious page can therefore supply image URLs that cause `curl` to send requests to loopback, link-local, private-network, or otherwise unintended services. The output directory is also supplied directly by the caller. The script creates directories and overwrites predictable files such as `article.json`, `image_urls.txt`, and `images/img-01.jpg` without checking whether the destination is trusted, already exists, or traverses symbolic links. An attacker able to control invocation arguments can replace files at a ...[truncated 2423 chars]
Remediation
View remediation
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill invokes shell-capable operations such as looping, sleeping, mkdir, curl, and running a local script, but it does not declare any tool scope or allowed-tools boundary. This is dangerous because an agent may execute filesystem and network actions beyond what the user expects, increasing the risk of unintended downloads, writes, or broader command execution in environments that rely on explicit permission declarations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill instructs the agent to create directories, download remote images with curl, and generate local output files without any warning, confirmation step, or consent boundary. This is risky because processing an attacker-supplied mp.weixin.qq.com link can trigger network retrieval and local writes automatically, which may surprise users, consume storage, or persist untrusted content on disk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script automatically extracts full article text and downloads all large remote images from a user-supplied WeChat article without any notice, consent prompt, or guidance on handling scraped content. In a skill explicitly designed to read and analyze公众号文章, this behavior is expected, but it still creates privacy, copyright, and data-handling risk because users or downstream agents may collect and store third-party content and media without clear disclosure or retention limits.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

All user-facing comments and terminal messages are in Chinese, and the script does not offer any language selection or opt-in. Under the stated policy, forcing a specific language without user choice is a natural-language policy violation unless clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.