Back to skill

Security audit

EO Blog Dev

Security checks for vulnerabilities and agentic risk

Overview

This is a small Chinese-language demo skill for using an EO collaboration plugin to generate a blog project, with no bundled executable code or hidden behavior found.

Before installing, verify that `eo-collaboration` is the plugin you intend to trust, review its publisher/source and permissions, and consider pinning or otherwise controlling the plugin version if your environment supports it. Expect the workflow to generate or modify project code for a blog system when explicitly invoked.

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:98
Finding
Unpinned External Plugin Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 98-105 **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium ```bash openclaw plugins install eo-collaboration ``` ### Technical Analysis The Skill directs users to install the external `eo-collaboration` plugin without specifying an immutable version, cryptographic digest, or verified source revision. Consequently, the installed plugin may differ from the version that existed when this Skill was reviewed. The external plugin's implementation is not included in the audited project, so its behavior and required permissions cannot be verified from this artifact. If the upstream package, publisher account, distribution infrastructure, or package identifier is compromised, the same documented command could retrieve a modified plugin. ### Attack Path 1. An attacker compromises the plugin publisher, distribution account, package identifier, or upstream release process. 2. The attacker publishes a malicious or backdoored version under the existing `eo-collaboration` identifier. 3. A user follows the Skill documentation and runs the unpinned installation command. 4. The installer retrieves the attacker-controlled version because no version or integrity digest is enforced. 5. When the plugin is invoked, the malicious implementation operates with the permissions granted to the OpenClaw Agent or plugin runtime. ### Impact Assessment The precise impact depends on the permissions granted to the external plugin. A compromised plugin could potentially access project files, alter generated source code, invoke available Agent tools, manipulate build or deployment artifacts, or access environment data visible to the plugin runtime. No malicious implementation is present in the audited artifact itself; this risk arises from the mutable and unaudited external dependency.
Remediation
## Remediation Suggestions 1. Pin the plugin to a specific, reviewed version rather than installing the latest mutable release. 2. Verify the package with an immutable cryptographic digest or signed release metadata when supported. 3. Document the expected publisher identity, official repository, reviewed version, and checksum. 4. Review the plugin's source code and requested permissions before installation. 5. Apply least privilege by restricting filesystem, network, credential, tool, and deployment access to only what the workflow requires. 6. Use a lockfile, trusted internal registry, or vendored and reviewed dependency where practical. 7. Perform upgrades through an explicit review process instead of automatically accepting upstream changes.
Vulnerability Patterns
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
Most user-facing instructional content, including the title, workflow, and usage example, is written in Chinese, and the file does not indicate that language selection is optional or limited to a Chinese-speaking context. This can violate language/locale policy expectations when a skill implicitly forces one language without user opt-in.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The trigger phrase '帮我用多专家协作开发一个博客系统' is broad, natural conversational language that a user could plausibly say in normal discussion, making the skill likely to activate unintentionally. In an agent/plugin ecosystem, overly generic activation increases the chance of surprising tool invocation, unnecessary delegation, and unintended code-generation workflows.

Static analysis

No suspicious patterns detected.