Back to skill

Security audit

AgentLink Protocol

Security checks for vulnerabilities and agentic risk

Overview

The skill is a P2P agent communication guide, but it also exposes broad file, web, and scheduling intents and asks users to run mutable remote packages without version or integrity controls.

Review this skill before installing. Use pinned, verified package versions, avoid the mutable curl install path unless you verify the file yourself, start new contacts at ask, and do not enable file, web, or scheduling intents for remote agents unless you have explicit path, destination, and approval limits in place.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T08 · Insecure Dependencies

Error
Location
SKILL.md:27
Finding
Unpinned Third-Party Package Installation and Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:27-29`, `SKILL.md:90-96`, and `SKILL.md:221-222` **Vulnerability Type**: Unpinned and unaudited third-party dependencies **Risk Level**: High ### Vulnerable Code ```bash npm install @dolutech/agent-link ``` ```bash npx @agentlink/cli init --name "My Assistant" ``` ```bash npx @agentlink/cli start ``` ```bash npm install @dolutech/agent-link ``` ### Technical Analysis The documented installation and execution commands do not pin the npm packages to exact, audited versions. No lockfile, package integrity hash, signature, or vendored implementation is included in the reviewed project. The `npx` commands can retrieve and execute the version currently resolved by the npm registry. Consequently, the effective code run by a user may differ from the code that existed when this Skill was reviewed. Package installation may also invoke npm lifecycle scripts. There is an additional provenance concern because the package installed by the instructions is scoped as `@dolutech/agent-link`, while the executable invoked later is scoped as `@agentlink/cli`. The artifact does not explain or verify this package-scope distinction. ### Attack Path 1. An attacker compromises a referenced npm publisher account, package release process, registry entry, or upstream dependency. 2. The attacker publishes a malicious or modified release under one of the package names referenced by the documentation. 3. A user follows the documented unversioned `npm install` or `npx` command. 4. npm resolves and downloads the mutable package release. 5. Malicious lifecycle scripts or CLI code execute with the permissions of the user running the command. 6. The package can access resources available to that user, subject to operating-system and runtime restrictions. ### Impact Assessment Successful exploitation could result in arbitrary code execution with the invoking user's privileges. Depending on those privileges and the environme ...[truncated 427 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every package to a specific audited version rather than relying on the registry's current resolution: ```bash npm install --save-exact @dolutech/agent-link@<audited-version> ``` 2. Commit an npm lockfile containing registry URLs and integrity hashes. 3. Replace unversioned `npx` use with an explicitly pinned package invocation, for example: ```bash npm exec --package=@agentlink/cli@<audited-version> -- agentlink init --name "My Assistant" ``` 4. Install dependencies with lockfile enforcement, such as `npm ci`, in supported project workflows. 5. Verify the publisher, package ownership, provenance attestations, signatures, and integrity metadata before installation. 6. Explain and validate why the installed library and executed CLI use different npm scopes. 7. Disable lifecycle scripts where they are unnecessary and operationally compatible, or review all lifecycle scripts before installation. 8. Run the software under a dedicated, least-privileged account or sandbox without unnecessary credentials or filesystem access. 9. Include the audited dependency manifests and lockfile in the project so reviewers can assess the actual dependency graph. ]]>

T03 · Remote Payload Retrieval and Execution

Warning
Location
SKILL.md:37
Finding
Mutable Remote Skill Retrieval Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:37-39` **Vulnerability Type**: Retrieval and activation of mutable remote agent instructions **Risk Level**: Medium ### Vulnerable Code ```bash # Download skill curl -o skills/agentlink/SKILL.md \ https://raw.githubusercontent.com/dolutech/agent-link/main/skills/agentlink/SKILL.md ``` ### Technical Analysis The documented command downloads an agent Skill directly from the mutable `main` branch of an external repository. It does not pin the resource to an audited commit and does not verify a checksum, digital signature, or trusted release artifact. Although the command does not directly pipe downloaded content into a shell, the downloaded file is intended to be registered as an active OpenClaw Skill. Skill instructions are behaviorally executable by the agent: modified instructions can influence tool use, network requests, file access, or interactions with remote agents. Therefore, activating the unverified file creates a remote payload substitution risk after the original artifact has been reviewed. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or the workflow responsible for updating the `main` branch. 2. The attacker modifies `skills/agentlink/SKILL.md` to contain harmful or deceptive agent instructions. 3. A user runs the documented `curl` command after the upstream content has changed. 4. The mutable file is downloaded without integrity or authenticity verification. 5. The user configures OpenClaw to load the downloaded Skill as instructed elsewhere in the document. 6. The agent follows the substituted instructions when the Skill is activated, potentially invoking available tools or exposing data within the agent's authorized scope. ### Impact Assessment The attainable impact depends on the tools and permissions granted to the OpenClaw agent. A malicious substituted Skill could attempt to direct authorized file operations, external communica ...[truncated 416 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace the mutable branch URL with a URL pinned to a reviewed commit hash or immutable signed release. 2. Publish a cryptographic checksum for the exact Skill file and verify it before installation: ```bash curl -o skills/agentlink/SKILL.md '<immutable-commit-url>' echo '<expected-sha256> skills/agentlink/SKILL.md' | sha256sum --check - ``` 3. Sign release artifacts and verify signatures against a documented, trusted maintainer key. 4. Require users to inspect or diff downloaded Skill instructions before registering them with OpenClaw. 5. Bundle the reviewed Skill in a versioned package rather than retrieving it independently from a mutable branch. 6. Apply least privilege when loading the Skill: grant only required tools, restrict filesystem paths and network destinations, and require confirmation for sensitive operations. 7. Document a controlled update process that repeats security review and integrity verification whenever the pinned Skill version changes. ]]>
Vulnerability Patterns
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (14)

Skill Enumeration

Medium
Category
Agent Snooping
Content
### 1. agentlink/

**File:** `skills/agentlink/SKILL.md`

**Purpose:** Teaches OpenClaw agents to communicate via P2P using the AgentLink protocol.
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
### 1. agentlink/

**File:** `skills/agentlink/SKILL.md`

**Purpose:** Teaches OpenClaw agents to communicate via P2P using the AgentLink protocol.
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
### 1. agentlink/

**File:** `skills/agentlink/SKILL.md`

**Purpose:** Teaches OpenClaw agents to communicate via P2P using the AgentLink protocol.
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
### 1. agentlink/

**File:** `skills/agentlink/SKILL.md`

**Purpose:** Teaches OpenClaw agents to communicate via P2P using the AgentLink protocol.
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
### 1. agentlink/

**File:** `skills/agentlink/SKILL.md`

**Purpose:** Teaches OpenClaw agents to communicate via P2P using the AgentLink protocol.
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
### 1. agentlink/

**File:** `skills/agentlink/SKILL.md`

**Purpose:** Teaches OpenClaw agents to communicate via P2P using the AgentLink protocol.
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
### 1. agentlink/

**File:** `skills/agentlink/SKILL.md`

**Purpose:** Teaches OpenClaw agents to communicate via P2P using the AgentLink protocol.
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The skill is presented as teaching P2P communication, but later documents broader capabilities including file, web, and scheduling intents. This mismatch can mislead operators about the scope of authority they are granting, increasing the risk of over-permissioned deployment and unsafe trust decisions. In a skill file, scope ambiguity is security-relevant because users rely on the description to judge risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill instructs users to run `npx @agentlink/cli` without pinning a specific package version. That allows whatever version is current in the registry at execution time to be fetched and run, creating supply-chain risk if a compromised or incompatible release is published. In a skill context, this is more dangerous because users are being told to execute remote package code directly as part of setup/operation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The command `npx @agentlink/cli start` is unpinned and will execute the latest registry version at runtime. This exposes users to unexpected code changes or malicious package updates, which is especially risky because the tool is started as part of an agent communications stack and may gain access to local/network resources.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The listed intents include actions that affect local data and external communications, but the documentation does not provide concrete warnings about privacy, system integrity, or abuse scenarios for those operations. Users may therefore enable or trust the skill without understanding that it could read files, write files, or fetch/search remote content on behalf of other agents.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The skill introduces `files.read`, `files.write`, `web.fetch`, and `web.search` intents even though its stated purpose is P2P messaging. Those capabilities materially expand the attack surface from messaging into local data access and outbound network activity, enabling data exfiltration, file tampering, or SSRF-like behavior if exposed to remote agents. The context makes this more dangerous because trust decisions may be made under the assumption the skill is only for communication.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
ls -la skills/agentlink/SKILL.md

# Check permissions
chmod 644 skills/agentlink/SKILL.md
```

### Tools not available
Confidence
80% confidence
Finding
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
The troubleshooting step again recommends `npx @agentlink/cli start` without version pinning. Repeating the pattern in troubleshooting increases the chance users will run arbitrary latest-version code during incident handling, when they may be less cautious.

Static analysis

No suspicious patterns detected.