T08 · Insecure Dependencies
- Location
SKILL.md:35- Finding
Unpinned Third-Party Packages Create a Supply-Chain Execution Risk
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:35SKILL.md:50SKILL.md:62config-reference.md:8config-reference.md:35-36powermem-intro.md:33
Vulnerability Type: Unpinned and unverified third-party dependency installation
Risk Level: MediumVulnerable Code
SKILL.md:35:bash npm install -g openclawSKILL.md:50andSKILL.md:62:bash pip install powermemconfig-reference.md:8:markdown - **Install** — `pip install powermem` (virtualenv recommended).config-reference.md:35-36:markdown - **Install**: `pip install powermem` (prefer inside a virtualenv). - **HTTP mode**: Create a `.env` (copy from [PowerMem .env.example](https://github.com/oceanbase/powermem/blob/master/.env.example)), set at least database + LLM + Embedding. Start server in that directory: `powermem-server --port 8000`.powermem-intro.md:33:markdown **Typical personal setup:** `pip install powermem`, ensure **`agents.defaults.model`** and provider keys are set in OpenClaw, install the plugin, use **CLI mode** with defaults (`useOpenClawModel: true`, no `envFile`).Technical Analysis
The installation instructions do not pin reviewed package versions or verify package integrity. Commands such as
pip install powermemandnpm install -g openclawresolve the package release available from the configured registry at installation time. The effective code executed by users can therefore change after this skill has been reviewed.A Python or npm package can execute code during installation or later at runtime. In this deployment, the installed components can process persistent conversation data, access the OpenClaw environment, and interact with provider authentication configuration. Consequently, compromise of a package, maintainer account, registry, or dependency could introduce code with access to sensitive local resources.
T ...[truncated 1901 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each package to a reviewed, known-good version, for example by using an exact Python version specifier and an exact npm package version.
- For Python, publish a locked requirements file with cryptographic hashes and install it using hash enforcement, such as
pip install --require-hashes -r requirements.txt. - For npm, document an exact package version and use a lockfile where the installation model permits it.
- Verify package provenance and signatures where supported, and explicitly document the expected package registry.
- Install Python dependencies inside a dedicated virtual environment under a non-privileged service account.
- Avoid global npm installation where possible; otherwise, ensure the global package prefix does not require administrator privileges.
- Pin external documentation and configuration references to immutable commit identifiers rather than mutable branches such as
mainormaster. - Download and inspect any external installer before execution. Publish a checksum or signature for the reviewed installer and plugin release.
- Add an upgrade procedure that requires security review before changing pinned versions.
