T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned Third-Party CLI Installed from a Mutable Git Repository<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:5` and `SKILL.md:26-29` **Vulnerability Type**: Unpinned executable dependency from an external Git repository **Risk Level**: Medium ### Vulnerable Code Metadata declaration at `SKILL.md:5`: ```yaml metadata: {"openclaw":{"emoji":"🖨️","requires":{"bins":["lk-print"]},"install":[{"id":"uv","kind":"uv","package":"git+https://github.com/liankenet/lk-print-box.git","bins":["lk-print"],"label":"Install lk-print (uv)"}]}} ``` Installation instructions at `SKILL.md:26-29`: ```bash # Global installation (registers lk-print in PATH) uv tool install git+https://github.com/liankenet/lk-print-box.git ``` ### Technical Analysis The Skill installs the `lk-print` executable directly from the mutable default revision of an external Git repository. The dependency is not constrained to a reviewed release, tag, commit hash, or integrity digest. Consequently, the code installed when the command is executed can differ from the code that existed when the Skill was audited. Package-controlled build and installation logic may execute locally during installation, while the installed CLI subsequently receives cloud-printing credentials and access to documents submitted for printing or scanning. The audited project contains only `SKILL.md`; the external CLI implementation is not included. Therefore, this finding does not establish that the current upstream package is malicious. It identifies a supply-chain trust weakness that would allow a compromised or unsafe future upstream revision to be installed without a corresponding change to this Skill. ### Attack Path 1. An attacker compromises the upstream GitHub repository, a maintainer account, or its release workflow. 2. The attacker modifies the repository's default branch or package installation logic with malicious code. 3. A user or Agent follows the Skill metadata or documented setup command: `uv tool install git+https://github.com/liankenet/lk-print-box.gi ...[truncated 1215 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the dependency to a reviewed immutable commit rather than the repository's mutable default branch, for example: ```bash uv tool install "git+https://github.com/liankenet/lk-print-box.git@<reviewed-full-commit-hash>" ``` 2. Prefer a signed, versioned release from a trusted package registry when one is available. 3. Verify release signatures, commit signatures, or published integrity hashes before installation. 4. Review the exact pinned CLI source, including its build configuration, credential storage, network destinations, file-upload behavior, and update mechanisms. 5. Update both the Skill metadata and setup instructions so they reference the same immutable version. 6. Run the CLI under a least-privileged account or sandbox with access limited to the documents and devices needed for the requested task. 7. Store API and device credentials using operating-system-backed secure storage, restrict their permissions, and provide a documented rotation and revocation process. 8. Establish a controlled dependency-update process in which each new upstream version is reviewed and repinned explicitly. ]]>
