Back to skill

Security audit

Common-Fetcher

Security checks for vulnerabilities and agentic risk

Overview

The skill’s fetching purpose is clear, but it installs a mutable npm command-line package whose reviewed source and exact version are not included.

Review this before installing in sensitive environments. Prefer a pinned and reviewed npm version, run it with limited filesystem and environment access, and configure allowed sources, schedules, output locations, and retention before enabling automated collection.

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:16
Finding
Unpinned and Unauditable npm Package Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 16–24 **Vulnerability Type**: Supply-chain exposure through an unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```json "install": [ { "id": "npm-install", "kind": "node", "package": "common-fetcher", "bins": ["common-fetcher"], "label": "Install common-fetcher (npm)" } ] ``` ### Technical Analysis The skill directs OpenClaw to install the `common-fetcher` package from the npm registry without specifying an exact version, package integrity hash, lockfile, or immutable source revision. Consequently, the code installed in the future may differ from the code reviewed when the skill was published. The audited project contains only `SKILL.md`; it does not include the npm package implementation, package manifest, lockfile, or vendored source. The behavior of the installed executable and any npm lifecycle scripts therefore cannot be verified from the supplied artifact. This creates a supply-chain risk if the package is compromised through account takeover, malicious publication, package ownership transfer, or registry compromise. This finding does not establish that the current npm package is malicious; it establishes that the skill trusts mutable, externally hosted code without sufficient version or integrity controls. ### Attack Path 1. An attacker gains the ability to publish a malicious release of the `common-fetcher` npm package, such as through maintainer account compromise or package ownership takeover. 2. The malicious release adds an npm lifecycle script, modifies the `common-fetcher` executable, or introduces a malicious transitive dependency. 3. A user or automated OpenClaw installation process loads this skill and processes the declared npm installation instruction. 4. Because no exact version or integrity value is specified, the package manager resolves the attacker-controlled release. 5. Malicious lifecycle code may execute d ...[truncated 840 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the dependency to an exact, security-reviewed version rather than allowing mutable registry resolution. 2. Verify the downloaded package using a trusted integrity digest or lockfile committed with the skill. 3. Include the package source in the reviewed artifact, or reference an immutable, verified source revision so its implementation can be audited. 4. Review the package's direct and transitive dependencies, published files, executable entry points, and npm lifecycle scripts before installation. 5. Disable npm lifecycle scripts during installation where they are unnecessary, for example by using an installation mode equivalent to `--ignore-scripts`. 6. Run installation and execution under a dedicated least-privileged account with restricted filesystem access, minimal environment variables, and controlled network access. 7. Monitor package ownership and release changes, and require a new security review before updating the pinned version. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (2)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill clearly enables large-scale web/API/RSS collection and even shows scheduled execution in OpenClaw, but the documentation does not warn users that it will contact third-party services, scrape websites, or run recurring fetch jobs. This omission can lead users to enable automated network activity without understanding data collection scope, operational load, policy/compliance implications, or privacy exposure from fetched content.

Natural-Language Policy Violations

Low
Confidence
91% confidence
Finding
The skill description and usage guidance are predominantly presented in Chinese, which effectively imposes a language choice on users without any opt-in or explanation of a locale-specific requirement. The policy allows fixed language only when user choice is offered or the regional limitation is clearly justified.

Static analysis

No suspicious patterns detected.