Back to skill

Security audit

Jlceda Plugin Builder

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for EasyEDA plugin development, but its optional debugging workflow preserves browser login state and cached logs without enough user-facing safety controls.

Review before installing if you will use MCP debugging with a real EasyEDA account. Run setup and npm commands in an isolated development workspace, review dependencies first, avoid shared machines, clear the MCP browser-data and console logs after debugging, and require explicit confirmation before the agent imports plugins or uses cached login state.

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:115
Finding

Unpinned Remote Project and Dependency Execution

Content
View full analysis
cd npm install npm run compile ``` `AGENTS.md:52`: ```text - npm dependencies can be imported as needed; update `package.json` accordingly ``` ### Technical Analysis The initialization workflow clones the mutable default branch of a remote repository without pinning it to a reviewed commit SHA or signed release. It then invokes `npm install` and `npm run compile`. An npm installation can execute dependency lifecycle scripts, while the compile command executes scripts controlled by the cloned repository. Consequently, the code executed during initialization can change after the Skill itself has been audited. The supplementary instruction allowing npm dependencies to be imported “as needed” does not impose version pinning, provenance validation, package allowlisting, lockfile enforcement, or lifecycle-script restrictions. This creates a software supply-chain risk. Compromise of the upstream repository, an npm package, a package maintainer account, or a transitive dependency could introduce code that is executed on the local system during setup or compilation. ### Attack Path 1. An attacker compromises the upstream SDK repository, a referenced npm package, a package maintainer account, or a transitive dependency. 2. Malicious code is added to the repository’s mutable default branch, an npm lifecycle script, or a build script. 3. The Agent follows the documented initialization workflow and clones the current upstream content. 4. The Agent runs `npm install`, which may execute malicious lifecycle scripts with the permissions of the invoking ...[truncated 979 chars]
Remediation
View remediation
cd git checkout ``` 2. Document the expected commit SHA and verify it before running installation or build commands. 3. Require a committed lockfile and use `npm ci` instead of `npm install` to enforce deterministic dependency resolution. 4. Use `npm ci --ignore-scripts` when dependency lifecycle scripts are not required. If scripts are required, review and explicitly allow only the necessary scripts before execution. 5. Require exact dependency versions rather than floating ranges. 6. Restrict generated dependencies to a reviewed allowlist and verify package names, maintainers, provenance, integrity hashes, and registry sources. 7. Run installation and compilation in an isolated, least-privileged environment without unnecessary credentials, sensitive environment variables, or access to unrelated workspaces. 8. Amend `AGENTS.md:52` to prohibit adding arbitrary dependencies without explicit approval and supply-chain validation. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · README_EN.md (reported line 9)May include surrounding context.

md
## Setup

### 1. Locate or Create the Skills Directory

Follow your AI Agent's documentation to find or create the directory for skills.
For example:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation explicitly states that browser login state is persisted in a local cache, but it provides no warning about session persistence, shared-machine risk, or how to clear that state. In a plugin-development workflow tied to a real EasyEDA account, this can expose authenticated sessions to other local users or to tools/processes that can access the cache directory.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The dev_plugin flow enables automatic browser console monitoring and log retention without warning that console output and page errors may contain tokens, file paths, design metadata, or other sensitive debugging data. Because logs are auto-captured and cached, users may unintentionally collect and retain sensitive information beyond the immediate debugging session.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

Line L01 presents the Chinese README as the default content and only links out to an English alternative, which can be read as a language policy choice rather than a user-selected preference. The policy allows locale constraints when users are given a clear choice or opt-in, but this file itself does not offer symmetric language selection within the document body.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The file begins by presenting English as the active/default version, with Chinese only as an alternate link. This can be interpreted as a locale/language preference baked into the skill documentation without any explicit user choice or justification in the file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill includes project initialization steps that clone a remote repository and install dependencies, which causes network access and execution of third-party package install scripts without an explicit warning in the skill description or a strong confirmation gate. In an agent setting, this can lead to unintended code retrieval and supply-chain exposure if the workflow is followed automatically or with insufficient user awareness.

Content

No source excerpt is available for this finding.