T08 · Insecure Dependencies
Warning
- Location
- README.md:8
- Finding
- Unpinned installation from mutable remote sources<![CDATA[ ## Vulnerability Details **File Location**: `README.md:8` **Vulnerability Type**: Unpinned remote dependency installation **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add https://github.com/zhylq/yuan-skills --skill zhy-markdown2wechat ``` ### Technical Analysis The documented installation command invokes the `skills` package through `npx` without specifying a package version and installs Skill content from a Git repository without pinning a tag or commit hash. Both sources are mutable. The command executed by `npx` can change when a new package version is published, while the content retrieved from the repository can change when its default branch is updated. Consequently, the code installed by a user may differ from the version covered by this audit. This is a supply-chain weakness rather than evidence that the currently reviewed repository is itself compromised. ### Attack Path 1. An attacker compromises the npm package used by `npx`, the referenced Git repository, or a maintainer account. 2. The attacker publishes a malicious CLI version or modifies the repository's default branch. 3. A user follows the installation command from the README. 4. `npx` retrieves and executes the mutable CLI package. 5. The installer retrieves the modified Skill content, allowing attacker-controlled code or instructions to be installed. ### Impact Assessment Successful exploitation could execute code with the privileges of the user running the installation command or install malicious Skill instructions and scripts for later execution. The affected scope includes files, credentials, network access, and other resources available to that user account. The command does not directly request administrative privileges, so privilege escalation beyond the invoking account is not established. ]]>
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin the `skills` CLI to a reviewed, exact version instead of allowing `npx` to select a mutable release. - Pin the Git source to an immutable commit hash or signed release tag. - Publish checksums or signatures for released Skill artifacts and verify them during installation. - Document the exact reviewed version and provide a reproducible installation procedure. - Avoid installation commands that immediately execute remotely resolved packages where a verified local installer can be used instead. ]]>
