T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:4
- Finding
- Unpinned Third-Party Package May Be Downloaded and Executed<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 4–12 **Vulnerability Type**: Unpinned third-party dependency and runtime package retrieval **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"openclaw": {"requires": {"bins": ["remi"]}, "install": {"brew": "mattheworiordan/tap/remi", "node": "@mattheworiordan/remi"}}} ``` ```markdown ## How to invoke Run `remi` as a CLI command via Bash. If `remi` is not on PATH, use `npx @mattheworiordan/remi` instead. Always use `--json` when calling programmatically. ``` ### Technical Analysis The Skill instructs the agent to execute the unpinned npm package `@mattheworiordan/remi` through `npx` when a local `remi` executable is unavailable. Because no exact version or integrity hash is specified, `npx` may retrieve and execute the package version currently served by the package registry. The effective executable can therefore change after the Skill has been reviewed. The declared Homebrew installation source, `mattheworiordan/tap/remi`, is likewise a third-party tap without a documented version or integrity constraint. This creates a supply-chain trust dependency on the package publisher, registry, Homebrew tap, and associated accounts and infrastructure. There is no evidence in the reviewed file that the named package is currently malicious. The risk arises from mutable and unverified third-party code being authorized for local execution. ### Attack Path 1. An attacker compromises the npm publisher account, registry distribution path, package repository, or third-party Homebrew tap. 2. The attacker publishes a modified package or formula containing malicious installation or runtime behavior. 3. The agent attempts to use this Skill on a system where `remi` is not already available on `PATH`. 4. Following the Skill instructions, the agent runs `npx @mattheworiordan/remi`. 5. `npx` downloads and executes the registry-provided package without enforcing a reviewed version or integrity v ...[truncated 694 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the npm dependency to an exact reviewed version, such as `@mattheworiordan/remi@<reviewed-version>`, rather than resolving the latest available release. 2. Install the package through an explicit, controlled setup process instead of permitting implicit runtime downloads through `npx`. 3. Use a lockfile and registry-provided integrity hashes where supported. 4. Configure `npx` to avoid silently installing missing packages, or verify that the expected executable is already installed before invocation. 5. Pin the Homebrew formula or release where practical and document the trusted upstream repository. 6. Verify package provenance, signatures, checksums, maintainers, and release artifacts before updating. 7. Run the CLI with least privilege and restrict its filesystem, network, and macOS privacy permissions to those required for reminder management. ]]>
