T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:75
- Finding
- Unpinned External Installer and Mutable Repository Reference<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:75-80` **Vulnerability Type**: Supply-chain exposure through unpinned external components **Risk Level**: Medium ### Vulnerable Code ```bash # One-click installation using the skills CLI npx skills add zhaoxinghua09-cell/agent-skills -g # Alternatively, clone and copy the Skill manually git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/lgd-law-ethic ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation process invokes an npm CLI package without specifying an exact package version. It also retrieves the Skill from the mutable default branch of an external Git repository without pinning a commit or verifying a cryptographic checksum or signature. Consequently, the software installed by these commands can differ from the artifact that was audited. The `npx` command may download and execute package code, while the Git workflow copies files from a remote branch directly into the user's global Agent Skill directory. This is a supply-chain weakness rather than evidence that the currently inspected source is malicious. The reviewed `scripts/law_ethic.py` file itself contains no remote payload retrieval or execution behavior. ### Attack Path 1. An attacker compromises the npm package, its publisher account, the external repository, or an upstream maintainer account. 2. The attacker publishes a modified CLI package or commits malicious content to the repository's default branch. 3. A user follows the documented `npx` or `git clone` installation procedure. 4. The unpinned package is executed, or the modified repository content is copied into `~/.workbuddy/skills/`. 5. The malicious component executes with the permissions of the user running the command or becomes available to the Agent in later sessions. ### Impact Assessment Successful exploitation could execute arbitrary code with the invoking user's privileges or install attacker-con ...[truncated 431 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the npm CLI to a reviewed version, for example by using an exact package version rather than an unqualified `npx` invocation. 2. Pin the repository installation procedure to a specific reviewed commit hash or signed release tag. 3. Publish SHA-256 or stronger checksums for released artifacts and require verification before installation. 4. Use signed commits, signed tags, or a package-signing mechanism and document signature verification. 5. Avoid global installation unless it is required. Install the minimum necessary Skill directory into a scoped location. 6. Ensure the pinned artifact is identical to the version subjected to security review. 7. Document the exact expected package name, publisher identity, version, commit, and integrity digest to reduce dependency-confusion and account-compromise risks. ]]>
