Back to skill

Security audit

decentral social

Security checks for vulnerabilities and agentic risk

Overview

The skill is broadly coherent, but it asks users to execute an unpinned npm package and underexplains privacy boundaries for networked social features.

Review the npm package and source before installing, prefer an exact pinned version with reproducible integrity metadata, and run demos in an isolated environment. Treat federation, DMs, public posting, and autonomous social behavior as network-enabled features that may expose content or metadata unless the package clearly documents and lets you control those flows.

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:49
Finding
Unpinned Third-Party Package Installation and Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 49 and 199–207 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash npm install openclaw-decentral-social ``` ```bash npx openclaw-decentral-social demo # Or use shorthand ods demo ``` The same `npx openclaw-decentral-social demo` command is repeated in the localized usage example at line 207. ### Technical Analysis The documented commands resolve the `openclaw-decentral-social` package from the configured npm registry without specifying an exact version, lockfile, or integrity hash. Consequently, the code installed or executed can change after this Skill has been reviewed. The `npx` command is particularly sensitive because it may retrieve the current package release and immediately run its CLI entry point. Package-controlled CLI logic and applicable installation lifecycle scripts execute with the permissions of the user running the command. The project contains only `SKILL.md`; no package implementation, dependency manifest, lockfile, or integrity metadata is included, so the package's runtime behavior and the document's local-only and no-telemetry claims cannot be verified from the audited artifact. This is a supply-chain exposure rather than evidence that the referenced package is currently malicious. ### Attack Path 1. An attacker compromises the npm publisher account, package distribution process, registry response, or a future package release. 2. The attacker introduces malicious code into the package's CLI entry point or applicable lifecycle scripts. 3. A user follows the Skill instructions and runs the unpinned `npm install` or `npx` command. 4. npm resolves and downloads the attacker-controlled release because no audited exact version or integrity value is enforced. 5. The malicious lifecycle or CLI code executes under the invoking user's account. ### Impact Assessment Successful exploitation could provide arbitrary co ...[truncated 618 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the package to an exact version that has undergone security review instead of relying on the registry's current version: ```bash npm install openclaw-decentral-social@<audited-exact-version> ``` 2. Publish and retain a lockfile containing registry integrity metadata, and require installation with a lockfile-enforcing workflow such as `npm ci`. 3. Avoid download-and-execute behavior through an unpinned `npx` invocation. Install the verified dependency first and invoke its local binary: ```bash npm exec --no -- ods demo ``` The exact invocation should be validated against the selected npm version and package binary name. 4. Where package functionality permits, initially install with lifecycle scripts disabled: ```bash npm install --ignore-scripts openclaw-decentral-social@<audited-exact-version> ``` 5. Include or link to the exact audited source revision, dependency manifest, lockfile, checksums, and reproducible-build information so reviewers can verify that the installed artifact corresponds to the reviewed code. 6. Run demonstrations in a least-privileged, isolated environment without production credentials or sensitive files, and restrict outbound network access when networking is not required. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill promotes direct agent-to-agent communication, federation, DMs, and protocol support, while the security section strongly emphasizes local-first behavior and 'no external API calls (by default)'. Without an explicit warning that optional networking and federation features may transmit prompts, messages, metadata, or identifiers to other agents or external protocols, users may unknowingly expose sensitive data or enable unintended outbound communications.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The documentation instructs users to run `npx openclaw-decentral-social` without pinning an exact version, which allows whatever package version is current at execution time to run. If the npm package is later compromised, typosquatted, or updated with malicious code, users may execute unreviewed code directly on their systems.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This is a second instance of the same risky pattern: invoking an npm package with `npx` and no pinned version. Because `npx` fetches and executes the latest matching package by default, users are exposed to supply-chain risk and arbitrary code execution if the published package changes or is hijacked.

Static analysis

No suspicious patterns detected.