Back to skill

Security audit

语雀连接器

Security checks for vulnerabilities and agentic risk

Overview

This Yuque sync skill is coherent, but it needs review because it asks for a read/write token in chat, stores it in plaintext, rewrites shared MCP config, and runs an unpinned npm connector.

Review before installing. Use a least-privilege Yuque token if possible, avoid pasting long-lived tokens into chat, inspect and restrict `~/.workbuddy/mcp.json` permissions, avoid plaintext backups containing secrets, and prefer a pinned, reviewed `yuque-mcp` version.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (3)

T08 · Insecure Dependencies

Error
Location
SKILL.md:342
Finding

Unpinned npm Package Is Automatically Downloaded and Executed

Content
View full analysis
" } } } } ``` ### Technical Analysis The Skill directs the Agent to execute `yuque-mcp` through `npx -y` without specifying an exact package version or verifying an integrity hash. The `-y` option suppresses the interactive installation confirmation, while the absent version constraint causes npm to resolve whichever release is current at execution time. Consequently, the code executed by the connector can change after the Skill has been reviewed. The referenced GitHub repository does not ensure that the npm artifact retrieved at runtime corresponds to a reviewed commit. This creates a supply-chain trust boundary in which a compromised publisher account, malicious package release, or compromised transitive dependency could introduce arbitrary executable code. ### Attack Path 1. An attacker compromises the `yuque-mcp` npm publishing account, package distribution process, or a dependency included in a future release. 2. The attacker publishes a malicious version under the package name resolved by npm. 3. A user invokes connector setup, diagnostics, or a normal MCP launch. 4. `npx -y yuque-mcp` automatically downloads and executes the malicious release without confirmation or integrity validation. 5. The malicious process runs with the WorkBuddy user's privileges and inherits the configured `YUQUE_PERSONAL_TOKEN`. 6. It can access the token, read files available to that user, modify local data, or transmit information over the network. ### Impact Assessment Success ...[truncated 428 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:420
Finding

Read/Write Yuque Token Is Collected Through Chat and Stored in Plaintext

Content
View full analysis
" } } } } ``` ### Technical Analysis The setup instructions require the user to submit a Yuque personal token through the conversational interface. This places the credential in the Agent's active context and may also expose it to conversation history, telemetry, debugging records, or logs maintained by the surrounding platform. The token is then persisted as plaintext in `~/.workbuddy/mcp.json`. The documented backup procedure can create an additional plaintext copy in `mcp.json.bak`. The Skill does not require owner-only file permissions, secret redaction, encrypted storage, restrictive backup handling, or deletion of superseded token copies. The requested token is explicitly configured with both read and write permissions. Disclosure therefore affects not only confidentiality but also the integrity of accessible Yuque repositories. ### Attack Path 1. The user creates a Yuque token with read and write permissions. 2. The user pastes the token into the Agent conversation as directed. 3. The token becomes part of the conversation context and may be retained in platform logs or history. 4. The Agent writes the token into `~/.workbuddy/mcp.json` and may create `mcp.json.bak`. 5. Another local process, user, extension, backup service, or log reader obtains one of these plaintext copies. 6. The attacker uses the token against th ...[truncated 622 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:333
Finding

Shared MCP Configuration Is Read and Rewritten Beyond the Yuque Entry

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill description and trigger phrases are entirely in Chinese, indicating a language-specific interaction model, but there is no opt-in language choice or explicit documentation that the skill is intentionally limited to Chinese users. Per the policy, forcing a specific language without user choice is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description does not clearly disclose that local file contents are uploaded to Yuque and remote Yuque document contents are retrieved to the local machine. This missing privacy notice weakens informed consent around transmission and storage of sensitive data across system boundaries.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description does not clearly disclose that local file contents are uploaded to Yuque and remote Yuque document contents are retrieved to the local machine. This missing privacy notice weakens informed consent around transmission and storage of sensitive data across system boundaries.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

Note creation and board-resource creation are unrelated to the core bidirectional sync function and grant additional write capabilities to the remote service. In context, this scope creep makes accidental misuse or prompt-triggered unintended actions more likely because the skill can create new remote artifacts beyond syncing files.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill advertises generic account and knowledge-base management operations such as creating and updating books, which exceed the stated sync purpose. Broader capabilities increase the blast radius if the skill is triggered unexpectedly or misused, enabling structural changes to remote content rather than simple import/export.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This section goes beyond document synchronization and instructs the assistant to edit local MCP configuration files and install tooling on the host. Expanding from content sync into local environment modification increases the attack surface and can persist risky configuration or execute unintended code paths.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The skill instructs the agent to bootstrap an MCP server with npx -y yuque-mcp without pinning an exact package version or integrity. That creates a supply-chain risk: future package updates or a compromised upstream release could execute unexpected code during installation in the user's environment.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill tells users to paste their personal Yuque token to the assistant for configuration. That creates a direct natural-language secret handling path where credentials may be exposed to logs, memory, third-party processing, or accidental reuse by the agent, materially increasing credential compromise risk.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

By encouraging users to re-share the same token with the assistant on another machine, the skill normalizes repeated disclosure of credentials and multiplies exposure opportunities. Repetition increases the chance of leakage, improper retention, and use of long-lived tokens across untrusted environments.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.