Back to skill

Security audit

append-note

Security checks for vulnerabilities and agentic risk

Overview

This note-saving skill is not overtly malicious, but it requires running an unaudited external MCP executable from a placeholder GitHub repo.

Review and trust the MCP repository before installing. Prefer a fixed, verified release or commit with a checksum, and assume anything saved through this skill will be written to local files under the configured notes directory.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:23
Finding

Unpinned External MCP Source Is Built and Executed

Content
View full analysis
&2 echo "Build on Windows:" >&2 echo " cd ${NOTE_SYNC_REPO}/mcp-server && go build -o note-sync-mcp.exe" >&2 exit 1 fi exec "${EXE}" ``` ### Technical Analysis The installation instructions clone the current default branch of an external repository and build it without pinning an audited commit, immutable release, checksum, or cryptographic signature. The launcher subsequently executes the generated binary as the configured MCP server. The external MCP implementation is not included in the audited project. Consequently, this audit cannot verify that the binary only appends notes, correctly confines writes to the intended notes directory, safely sanitizes titles, avoids network access, or protects inherited environment data. The repository URL also uses the placeholder owner `your-org`, preventing identification of a concrete, trusted upstream source. This creates a supply-chain trust gap: the code reviewed during Skill publication is not necessarily the code users later retrieve and execute. ### Attack Path 1. An attacker compromises the external repository, gains control of its default branch, or causes users to resolve the placeholder URL to an unsafe source. 2. The attacker modifies the MCP source to include arbitrary b ...[truncated 1075 chars]
Remediation
View remediation
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill claims to simply append notes, but its real operation depends on launching an external MCP server/binary from a user-configured repository path. That creates a trust boundary the description does not disclose: if the referenced executable is replaced, modified, or has broader capabilities than documented, the agent could perform actions beyond simple note appends under the guise of a benign note-saving skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill is designed to persist chat-derived content to local Markdown files, but the usage section does not prominently warn users that their conversation text will be written to disk. This can lead to unintended storage of sensitive information, especially when users may treat chat content as transient rather than persistent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The success message and default title examples are in Chinese, which suggests a language-specific interaction pattern. The file does not state that the skill is intended only for Chinese users or offer a language choice, so this creates a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documented success response is fixed as 已保存笔记:{title}, which imposes a specific language in the skill's natural-language behavior. The file does not mention any user-selectable locale, opt-in, or region-specific justification for this language constraint.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.