Back to skill

Security audit

Complex Interaction

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent frontend guidance skill with no hidden malicious behavior, but users should be aware of an unpinned npx example and a visible model override.

Install only if you want frontend interaction implementation guidance. Before running the collaboration server example, pin `y-websocket` to a reviewed version or use a lockfile-managed local dependency, and check whether the `model: opus` setting has provider, data, or billing implications in your environment.

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:242
Finding
Unpinned Third-Party Package Execution Through npx## Vulnerability Details **File Location**: `SKILL.md`, lines 242-246 **Vulnerability Type**: Unpinned dependency retrieval and execution **Risk Level**: Medium ```bash # Simplest method: directly use the official server HOST=localhost PORT=1234 npx y-websocket ``` ### Technical Analysis The skill recommends executing `y-websocket` through `npx` without specifying a reviewed package version, requiring a lockfile, verifying an integrity hash, or ensuring that the package is already installed locally. When the requested package is unavailable locally, `npx` can retrieve executable package content from the configured package registry and run it immediately. The effective code may therefore differ from the code available when this skill was audited. Referring to the package as the “official server” does not verify the integrity or provenance of the package version resolved at execution time. This creates a supply-chain exposure: compromise of the package, its publisher account, the registry resolution path, or a future release could cause arbitrary package code to run on the user's system. No evidence establishes that the current `y-websocket` package is malicious; the vulnerability is the unsafe, unpinned execution mechanism. ### Attack Path 1. A user requests help configuring a Yjs collaboration server. 2. The agent follows the command documented in `SKILL.md`. 3. `npx` resolves `y-websocket` without a fixed version or integrity constraint. 4. If the package is not already available locally, `npx` retrieves the currently resolved package from the configured registry. 5. A compromised or maliciously changed package version executes through its CLI or package lifecycle behavior. 6. The package code runs with the privileges and environment access of the account that invoked `npx`. Exploitation depends on compromise or malicious modification of the resolved dependency or its distribution channel. ### Impact Assessment ...[truncated 675 chars]
Remediation
## Remediation Suggestions 1. Pin `y-websocket` to a specific, reviewed version rather than resolving the latest available release. 2. Declare the dependency in the project manifest and commit the generated lockfile. 3. Install dependencies using a lockfile-enforcing command such as `npm ci`. 4. Run the locally installed binary, or use `npx --no-install y-websocket`, so execution fails instead of downloading unreviewed code. 5. Enable registry integrity verification and review the package's provenance, maintainers, release history, and transitive dependencies. 6. Run the collaboration server under a dedicated, least-privileged account or container with restricted filesystem, credential, and network access. 7. Replace the current example with a controlled workflow, such as: ```bash npm install --save-exact y-websocket@<reviewed-version> npm exec --no -- y-websocket ``` The selected version should also be recorded and integrity-locked in the project's lockfile.
Vulnerability Patterns
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (5)

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The skill content is written to operate in Chinese without indicating that it should adapt to the user's preferred language. This can create usability and policy-alignment issues by forcing responses in an unintended language, reducing clarity and increasing the chance of misunderstanding technical guidance.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The trigger condition is broad enough to activate on ordinary frontend discussions such as drag-and-drop, virtualization, editors, or canvas performance, even when the user did not intend to invoke this skill. This can cause inappropriate routing, irrelevant code generation, or the skill overriding a more suitable specialized response path.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The manifest description and trigger examples are primarily written in Chinese and implicitly require Chinese-language input, but the file does not offer users a language or locale choice. Under the policy, forcing a specific language without explicit opt-in is a natural-language policy violation.

External Model or Provider Selection

Medium
Category
Excessive Agency
Content
---
name: complex-interaction
description: Implements complex frontend interactions: drag-and-drop, virtual scrolling, rich text editors, real-time collaboration, canvas/WebGL, and gesture handling. Use when 拖拽, 虚拟滚动, 富文本, 实时协作, Canvas, WebGL, 手势, or complex UI interactions.
model: opus
---

# 复杂交互实现(Complex Interaction)
Confidence
90% confidence
Finding
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The skill instructs users to run `npx y-websocket` without pinning a version, which can fetch and execute whatever package version is current at runtime. That creates a supply-chain risk: a compromised, typosquatted, or breaking upstream release could execute unexpected code on the user's machine or produce non-reproducible behavior.

Static analysis

No suspicious patterns detected.