Back to skill

Security audit

YoudaoNote LLM Wiki

Security checks for vulnerabilities and agentic risk

Overview

This skill is purpose-built for a cloud note wiki, but it combines persistent cloud writes with broad triggers, inconsistent consent language, and an unverified remote installer command users are told to run.

Review before installing. Use only if you are comfortable granting the agent access to read and write your YoudaoNote wiki content, and prefer a verified CLI installation path over the curl-to-bash command. Before archiving, ask the agent to show exactly what will be saved and remove secrets, credentials, personal identifiers, or sensitive business content.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • 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 (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:622
Finding

Unverified Remote Installer Piped Directly into Bash

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:622-626
Vulnerability Type: Remote payload retrieval and execution
Risk Level: High

bash
**macOS / Linux / WSL**:

```bash
curl -fsSL https://artifact.lx.netease.com/download/youdaonote-cli/install.sh | bash -s -- -f -b ~/.local/bin
export PATH="$HOME/.local/bin:$PATH"
# After execution, reply "installed"; the Agent will continue the original request
text

### Technical Analysis

The installation instructions pipe the response from a mutable external URL directly into Bash. This creates a remote code-execution channel in which the effective payload is determined at installation time rather than at Skill review time.

HTTPS protects the connection in transit but does not establish that the returned script is the same artifact previously reviewed. The command does not pin a release, verify a checksum, validate a cryptographic signature, or save the script for mandatory inspection before execution. Compromise of the distribution server, DNS or certificate infrastructure, vendor publishing credentials, or the installer itself could therefore result in arbitrary commands being executed.

The document states that the user must run the command manually and provides a safer download-and-review alternative elsewhere. These controls reduce automatic exploitation but do not eliminate the vulnerability because the direct execution command remains the primary macOS, Linux, and WSL installation example.

Installing the required CLI under `~/.local/bin` is consistent with the Skill's declared functionality and avoids a system-wide installation. However, granting a mutable installer unrestricted shell execution is broader than the minimum privilege needed to place a verified CLI binary in that directory.

### Attack Path

1. The `youdaonote` CLI is absent or below the required version.
2. The Skill presents the installation instructions from `SKILL.md`.
3. The user ma
...[truncated 1399 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the direct curl | bash installation command from the recommended workflow.
  2. Publish versioned, immutable release artifacts for each supported platform.
  3. Require users to download a specific release rather than an unversioned installer endpoint.
  4. Publish SHA-256 checksums through an independently authenticated release channel and verify the downloaded artifact before execution.
  5. Prefer cryptographic signature verification using a pinned vendor signing key. A checksum hosted only beside a compromised artifact is insufficient against repository compromise.
  6. Install only the verified binary into ~/.local/bin; avoid granting a general-purpose installer script unrestricted shell execution.
  7. If a script is unavoidable, download it to a new local file, verify its pinned digest or signature, display the resolved version and source, and require explicit user confirmation before executing it.
  8. Document the files and directories the installer will modify and ensure it does not require administrator privileges, alter shell startup files, or access unrelated credentials.
  9. Keep the existing manual-execution boundary, but make the verified workflow mandatory rather than presenting inspection as an optional alternative.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

External Script Fetching

High
Category
Supply Chain
Confidence
93% confidence
Finding

This duplicate finding points to the same remote-install pattern: downloading an external install script and executing it locally. In a skill document, normalizing this pattern increases supply-chain and arbitrary code execution risk for users following the instructions.

Content

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

bash
# 步骤 1:下载脚本到本地
curl -fsSL https://artifact.lx.netease.com/download/youdaonote-cli/install.sh -o install.sh
# 步骤 2:审查脚本内容
cat install.sh
# 步骤 3:确认无误后执行

External Script Fetching

High
Category
Supply Chain
Confidence
93% confidence
Finding

This duplicate finding points to the same remote-install pattern: downloading an external install script and executing it locally. In a skill document, normalizing this pattern increases supply-chain and arbitrary code execution risk for users following the instructions.

Content

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

bash
# 步骤 1:下载脚本到本地
curl -fsSL https://artifact.lx.netease.com/download/youdaonote-cli/install.sh -o install.sh
# 步骤 2:审查脚本内容
cat install.sh
# 步骤 3:确认无误后执行

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill description uses very broad everyday trigger phrases such as '记下来', '知识查询', and '切换知识库', which can match ordinary conversation not intended to invoke a persistence-heavy skill. Because this skill performs cloud writes and registry maintenance, accidental activation can cause unintended data storage or modification in the user's account.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The Archive workflow explicitly directs the agent to capture recent conversation content and save it into the user's knowledge base. That creates a real data-handling risk because conversations often contain sensitive personal, business, or credential-adjacent information, and the skill does not require a sensitivity check, minimization, or redaction before persistence.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The Archive trigger list includes generic phrases like '记下来' and '存入知识库' without clear scoping or confirmation requirements tied to ambiguous requests. In this skill's context, those phrases can cause recent conversation content to be persisted to a cloud knowledge base even when the user only intended a transient note or summary.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill contains contradictory instructions about registry reconstruction: earlier sections require explicit user consent before rebuilding the global registry, but this later line says reconstruction happens automatically without user intervention. In a write-capable skill, inconsistent authorization semantics are dangerous because an agent may choose the less restrictive path and perform unexpected persistent writes to the user's cloud notes.

Content

No source excerpt is available for this finding.

Ssd 3

Low
Category
Not specified by scanner
Confidence
69% confidence
Finding

The guidance says the agent should maintain key note identifiers and append new fileIds after each creation so later sessions can reuse them directly. Although operationally convenient, this is still a natural-language retention instruction for workspace metadata tied to the user's account and activity, with no minimization or consent boundary described.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The document gives conflicting execution conditions for registry reconstruction, saying both that user confirmation is required and that rebuilding can happen automatically. Even if this is partly a quality issue, inconsistent activation logic in a write-enabled skill weakens safety boundaries and increases the chance of unintended actions.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.