T08 · Insecure Dependencies
- Location
SKILL.md:28- Finding
Unpinned and inconsistently identified external executable
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:10,SKILL.md:28,SKILL.md:40-50,SKILL.md:85-89, andREADME.md:17
Vulnerability Type: Unverified third-party executable and inconsistent supply-chain source
Risk Level: MediumVulnerable Code
SKILL.md:8-10identifies one upstream source:yaml metadata: openclaw: requires: bins: [node, git] homepage: https://github.com/ginstall-oneclick/ginstall-oneclickSKILL.md:28accepts an unspecified executable from the systemPATH:markdown - **`ginstall`** available on PATH (install from the upstream GInstall / GInstall OneClick CLI project).SKILL.md:40-50invokes that executable, including an auto-approved execution mode:markdown 3. **Run `ginstall` with quoted repo URL** — prefer: ```bash ginstall "<repo-url>" --mode guided --env-mode scanCI / non-interactive:
bash ginstall "<repo-url>" --yes --mode assisted --env-mode scantext `SKILL.md:85-89` identifies a different GitHub owner as the upstream source: ```markdown ## Upstream CLI This file is the **OpenClaw skill** only. Install or build **`ginstall`** from the GInstall OneClick CLI repository: <https://github.com/YunzhouLi-hub/GInstall-OneClick>README.md:17again points to the first repository:markdown | [**`ginstall` CLI**](https://github.com/ginstall-oneclick/ginstall-oneclick) | Does clone, installs, scripts (this skill teaches the agent **how** to call it). |Technical Analysis
The Skill delegates its security-sensitive functionality to whichever executable named
ginstallappears first onPATH. It provides no pinned release, commit identifier, package version, checksum, signature verification, or deterministic installation procedure.The documented source is also inconsistent: the metadata and README reference `github.com/ginstall-oneclick/ginstall-o ...[truncated 2486 chars]
- Remediation
View remediation
Remediation Suggestions
-
Establish one canonical upstream source
- Determine the authoritative repository.
- Make the frontmatter homepage, README requirement, and upstream CLI section reference the same repository.
- Remove or explain any legacy or mirror URLs.
-
Pin the trusted release
- Require a specific semantic version and, where practical, an immutable release commit.
- Avoid instructions that install from a moving branch such as
main. - Review and deliberately approve upgrades before changing the pinned version.
-
Verify artifact integrity
- Publish cryptographic checksums or signed release artifacts.
- Verify the checksum or signature before first execution.
- Document a deterministic installation command tied to the pinned artifact.
-
Validate the executable before invocation
- Resolve the executable using a trusted absolute path rather than an arbitrary
PATHentry. - Check its version and provenance.
- Reject unexpected binaries or versions instead of continuing automatically.
- Resolve the executable using a trusted absolute path rather than an arbitrary
-
Minimize the child process environment
- Do not expose
GITHUB_TOKENfor public repositories. - Provide the token only to the operation that requires private GitHub access.
- Remove unrelated secrets from the spawned process environment.
- Continue requiring a minimally scoped, read-only token.
- Do not expose
-
Contain execution
- Run installation and project scripts in an isolated workspace or container.
- Use an unprivileged account with restricted filesystem access.
- Apply outbound network restrictions where operationally feasible.
- Avoid
--yesfor untrusted repositories and present the execution plan for approval before dependency or development scripts run.
-
