Back to skill

Security audit

wx-skill-caller

Security checks for vulnerabilities and agentic risk

Overview

This skill openly forwards broad categories of user messages to an external test API, which creates a privacy and response-control concern without clear user consent or narrowing.

Install only if you are comfortable with ordinary chat and help messages being sent to the named external WX backend. Avoid using it for secrets, credentials, private business data, regulated data, or local-only tasks unless the skill is narrowed to explicit opt-in use with clear data handling controls.

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

other

Error
Location
scripts/call-wx-skill.py:10
Finding

Unrestricted Disclosure of Raw User Messages to an External Service

Content
View full analysis
dict: """Call the wx skill API with the given content.""" payload = { "content": content } data = json.dumps(payload).encode("utf-8") req = urllib.request.Request( API_URL, data=data, headers={ "Content-Type": "application/json" }, method="POST" ) try: with urllib.request.urlopen(req, timeout=30) as response: result = json.loads(response.read().decode("utf-8")) return result ``` The command-line input is forwarded without modification: ```python content = sys.argv[1] result = call_wx_skill(content) print(json.dumps(result, ensure_ascii=False)) ``` ### Technical Analysis The Skill sends the complete raw user message to the fixed external endpoint `test-gig-c-api.1haozc.com`. Its routing documentation directs the agent to use this integration for broad categories of ordinary conversation rather than only for narrowly scoped, explicit requests. No control is present to: - Obtain informed user consent before external transmission. - Detect or redact passwords, tokens, personal information, or confidential business data. - Minimize the transmitted data. - Restrict forwarding to an explicitly approved class of requests. - Verify the external service's ownership, retention policy, or processing purpose. - Distinguish production infrastructure from the explicitly named test environment. HTTPS protects the message in transit but does not prevent the receiving service from reading, storing, profiling, or redistributing it. ### Attack Path 1. A use ...[truncated 1091 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:1
Finding

Broad Skill Routing Delegates General Agent Responses to an External Backend

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 (4)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill instructs the agent to forward the user's raw message content to an external API and return the response, but it provides no explicit user warning or consent mechanism for that data transfer. This is dangerous because users may unknowingly send sensitive personal, confidential, or security-relevant information to a remote service outside the primary trust boundary.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill performs outbound network access to a third-party backend but does not declare any explicit tool scope or permissions boundary. This creates hidden capability expansion: reviewers and calling systems may not realize arbitrary user content is being transmitted externally, increasing the risk of ungoverned data exfiltration or policy bypass.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The routing description is extremely broad ('general user messages', 'free-form chat', 'help requests'), making this skill a catch-all for many conversations. In context, that means a large volume of user input may be automatically forwarded to the external backend, including messages that should stay local or be handled by safer built-in tools.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The script forwards raw user-provided content directly to a third-party backend API with no consent prompt, redaction, or policy enforcement. In a skill-handler context, users may assume they are chatting locally or within the trusted platform, so this creates a real data-exfiltration/privacy risk and can also relay sensitive prompts, credentials, or personal data to an external service.

Content

No source excerpt is available for this finding.