T03 · Remote Payload Retrieval and Execution
- Location
README.md:21- Finding
Unpinned Remote Companion Plugin Installation
- Content
View full analysis
Vulnerability Details
File Location:
README.md:21-27
Vulnerability Type: Unpinned remote code retrieval and dependency installation
Risk Level: HighVulnerable Code
bash git clone https://github.com/realM1lF/openclaw-wordpress-tool.git cd openclaw-wordpress-tool && npm install openclaw plugins install -l "$(pwd)" openclaw plugins enable wordpress-site-tools openclaw gateway restartThe same installation workflow is also recommended in
SKILL.md:17-30andreferences/CONNECTING.md:58-69.Technical Analysis
The documented procedure clones the mutable default branch of a personal GitHub repository and immediately runs
npm install. It does not pin an immutable commit or release, verify a checksum or signature, or otherwise establish that the fetched source matches a reviewed version.Running
npm installmay execute package lifecycle scripts and install mutable transitive dependencies. The resulting code is then installed and enabled as an OpenClaw gateway plugin. The plugin itself is not included in this audit artifact, so its implementation, dependency lock state, lifecycle scripts, and security controls could not be verified.This external component is expected to receive powerful capabilities, including authenticated WordPress REST access, WP-CLI invocation, media upload, and plugin-file access. Remote installation is necessary only if the optional companion plugin is chosen; using an unpinned source is not necessary for the declared WordPress-management functionality.
Attack Path
- An attacker compromises the GitHub repository, its maintainer account, or one of its npm dependencies.
- The attacker inserts malicious code into the default branch or dependency resolution path.
- A user follows the documented commands and clones the changed repository.
npm installexecutes malicious package code or lifecycle scripts on the OpenClaw gateway host.- The user install ...[truncated 778 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin installation instructions to a reviewed release and immutable commit hash rather than the repository's default branch.
- Publish and verify cryptographic checksums or signed release artifacts before installation.
- Include and enforce a reviewed dependency lockfile; use
npm ciinstead of unconstrainednpm install. - Audit package lifecycle scripts and consider
npm ci --ignore-scriptsif the plugin does not require install scripts. - Vendor the reviewed plugin into a signed release or distribute it through a controlled, verifiable registry.
- Install and test the plugin in an isolated staging environment before granting production access.
- Initially allow only the minimum required tools, such as connection checking and narrowly scoped REST access. Do not grant the plugin-wide shorthand allowlist by default.
- Use a dedicated, least-privilege WordPress application-password user and avoid production administrator credentials.
- Enable WP-CLI and plugin-file tools only when necessary, with narrowly constrained profiles and filesystem paths.
