T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:35- Finding
Unverified Remote Installer Is Downloaded and Executed by a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly aligned with reading public WeChat articles, but its setup and fallback script create risks that should be reviewed before installation.
Install only if you are comfortable with local command execution and network fetching. Prefer installing uv through a trusted package manager, use a reviewed lockfile, and avoid running the diagnostic script on anything except intended public WeChat article URLs.
SKILL.md:35Unverified Remote Installer Is Downloaded and Executed by a Shell
SKILL.md:13Skill Documentation Attempts to Override Agent Tool Selection
scripts/wechat_js_render.py:170Diagnostic Fetcher Permits Requests to Arbitrary and Internal Hosts
pyproject.toml:7Dependency Resolution Is Mutable and Not Protected by a Lockfile
Using a shell pipeline to execute downloaded content directly is a classic chaining-abuse pattern because it combines retrieval and execution in one step, eliminating an opportunity for inspection or integrity checks. In a skill setup context, this increases the chance that users will blindly run attacker-controlled or tampered installer code.
若 uv 未安装,先执行:
brew install uv # macOS;Linux 用 curl -LsSf https://astral.sh/uv/install.sh | sh
再安装项目依赖:
The skill directs the agent to perform network-backed article retrieval but does not declare any explicit tool scope such as allowed tools or permissions. This creates an authorization ambiguity where the agent may use broader capabilities than intended, increasing the risk of unintended network access or policy bypass in environments that rely on manifest-level scoping.
The manifest description is written as a strict behavioral instruction and presents the skill's operation entirely in Chinese without any indication that users may request another language. Under the policy, forcing a specific language or locale without opt-in is a natural-language policy violation.
The request headers hard-code Accept-Language: zh-CN,zh;q=0.9,en;q=0.8, which imposes a specific locale preference on all requests. This is a natural-language/locale policy issue because the script does not offer user opt-in or explain why a Chinese locale is required.
The instructions recommend installing uv via a remote shell pipeline (curl ... | sh), which executes code fetched from the network without prior verification. If the remote host, transport, or install script is compromised, an operator running the setup command could execute arbitrary code on the host.
若 uv 未安装,先执行:
brew install uv # macOS;Linux 用 curl -LsSf https://astral.sh/uv/install.sh | sh
再安装项目依赖:
The project declares curl_cffi with only a minimum version constraint, so dependency resolution may install a release affected by known advisories, including a bundled libcurl issue and a redirect-based SSRF flaw. In this skill's context, the package is used to fetch attacker-controlled WeChat URLs, which increases risk because network-facing behavior and redirect handling are central to the skill's operation.
The request hard-codes Accept-Language: zh-CN,zh;q=0.9, which imposes a specific language/locale behavior. Under the policy, forcing a locale without user opt-in or clear region-specific justification is a natural-language policy violation.
No suspicious patterns detected.