T08 · Insecure Dependencies
Warning
- Location
- README.md:9
- Finding
- Installation from a Mutable GitHub Branch Through an Unpinned CLI## Vulnerability Details **File Location**: `README.md`, line 9 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium **Vulnerable Code**: ```bash npx skills add https://github.com/wpank/Agentic-Uniswap/tree/main/.ai/skills/batch-swap ``` ### Technical Analysis The installation command uses `npx` without pinning the `skills` CLI to a reviewed version and installs skill content from the mutable `main` branch of a remote GitHub repository. Consequently, the code and instructions installed by this command can differ from the content that was originally audited. This creates a supply-chain trust boundary involving both the npm package resolved by `npx` and the GitHub repository. Compromise of either source, or an unreviewed upstream update, could introduce malicious instructions, scripts, or installer behavior. ### Attack Path 1. An attacker compromises the npm package, its publisher account, the GitHub repository, or an authorized repository maintainer. 2. The attacker publishes a modified CLI release or pushes malicious content to the `main` branch. 3. A user follows the documented installation command. 4. `npx` resolves the unpinned CLI, which then retrieves content from the mutable branch. 5. The altered installer or installed skill executes with the invoking user's permissions when installed or subsequently used. ### Impact Assessment Successful exploitation could install modified skill instructions or executable content and potentially run arbitrary code with the privileges of the user invoking `npx`. The resulting scope may include access to files, credentials, environment variables, developer tools, and agent capabilities available to that user. In this project, malicious changes could also affect a workflow intended to initiate financial token swaps.
- Remediation
- ## Remediation Suggestions - Pin the `skills` npm package to an exact, reviewed version rather than allowing `npx` to resolve a mutable release. - Replace the GitHub `main` branch reference with an immutable, reviewed commit hash or signed release tag. - Publish and verify cryptographic integrity hashes for downloaded artifacts. - Require signed commits or releases and protect the upstream repository with mandatory review and multi-factor authentication. - Inspect installation packages before execution and avoid lifecycle scripts unless they are explicitly required and audited. - Document the expected package version, repository commit, and integrity value so users can verify the installed content.
