Back to skill

Security audit

weixinclaw-proactive-push

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims, but it sends real WeChat messages using local bot credentials and has under-scoped safeguards around network destination, sandboxing, and confirmation.

Install only if you are comfortable letting this skill read your WorkBuddy WeChat bot credentials and send messages or media to the configured recipient. Before use, verify the recipient in settings.json, avoid disabling the sandbox globally, and prefer a version that validates the Weixin API host exactly and asks for confirmation before sending.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
send.js:161
Finding

Configurable API Origin Can Expose the Bot Bearer Token

Content
View full analysis
${res.status}`, VERBOSE ? raw : ''); if (!res.ok) throw new Error(`HTTP ${res.status}: ${raw}`); let json = {}; try { json = JSON.parse(raw); } catch { /* empty response means success */ } if (json && json.ret && json.ret !== 0) { throw new Error(`API ret=${json.ret} errmsg=${json.errmsg}`); } if (json && json.errcode && json.errcode !== 0) { throw new Error(`API errcode=${json.errcode} errmsg=${json.errmsg}`); } return json; } ``` The authorization header is constructed with the complete bot credential: ```js Authorization: `Bearer ${token}`, ``` ### Technical Analysis The script obtains `baseUrl` from the local WorkBuddy configuration and uses it as the destination for requests containing the c ...[truncated 1928 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
send.js:342
Finding

Recipient WeChat Identifier Is Disclosed in Execution Logs

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:70
Finding

Documentation Recommends Disabling the Runtime Sandbox

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 12)May include surrounding context.

md
> 本仓库**只含 `SKILL.md` + `send.js`**,接收方用自己的 `settings.json` 即可,无需你提供任何密钥。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 12)May include surrounding context.

md
> 本仓库**只含 `SKILL.md` + `send.js`**,接收方用自己的 `settings.json` 即可,无需你提供任何密钥。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 117)May include surrounding context.

md
> 本仓库**只含 `SKILL.md` + `send.js`**,接收方用自己的 `settings.json` 即可,无需你提供任何密钥。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 147)May include surrounding context.

md
> 本仓库**只含 `SKILL.md` + `send.js`**,接收方用自己的 `settings.json` 即可,无需你提供任何密钥。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 150)May include surrounding context.

md
> 本仓库**只含 `SKILL.md` + `send.js`**,接收方用自己的 `settings.json` 即可,无需你提供任何密钥。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 158)May include surrounding context.

md
> 本仓库**只含 `SKILL.md` + `send.js`**,接收方用自己的 `settings.json` 即可,无需你提供任何密钥。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 214)May include surrounding context.

md
> 本仓库**只含 `SKILL.md` + `send.js`**,接收方用自己的 `settings.json` 即可,无需你提供任何密钥。

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README documents a capability to proactively send text, images, files, and videos to a boss over WeChat, but it does not prominently require user confirmation, recipient verification, or a warning about privacy and accidental disclosure. In a messaging skill, this omission is security-relevant because users may trigger outbound communication containing sensitive data or target the wrong recipient without adequate safeguards.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill clearly instructs the agent to perform outbound network actions against external WeChat/iLink endpoints and to read local credential files, yet it declares no explicit tool scope or permission boundaries. That creates a governance gap where the skill can be invoked without transparent authorization constraints, increasing the chance of unintended message sending or credential-adjacent access in environments that rely on manifest-declared permissions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger phrases are broad enough to overlap with ordinary requests like 'send a WeChat message to the boss,' which can cause the agent to select this skill even when the user did not intend use of the ClawBot channel or its local credential-reading behavior. In this context, misrouting is more dangerous because the skill performs proactive outbound messaging using stored bot credentials and targets a real recipient automatically.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The '何时用' section provides permissive activation examples but lacks strong boundaries for when the skill must not run, which increases the risk of accidental invocation for common messaging tasks. Because this skill can proactively contact a boss over WeChat using locally stored tokens and identifiers, ambiguous routing can lead to unauthorized or surprising outbound communications.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.