T08 · Insecure Dependencies
- Location
README.md:9- Finding
Installation from a Mutable GitHub Branch Through an Unpinned CLI
- Content
View full analysis
Vulnerability Details
File Location:
README.md, line 9
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable Code:
bash npx skills add https://github.com/wpank/Agentic-Uniswap/tree/main/.ai/skills/batch-swapTechnical Analysis
The installation command uses
npxwithout pinning theskillsCLI to a reviewed version and installs skill content from the mutablemainbranch 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
npxand the GitHub repository. Compromise of either source, or an unreviewed upstream update, could introduce malicious instructions, scripts, or installer behavior.Attack Path
- An attacker compromises the npm package, its publisher account, the GitHub repository, or an authorized repository maintainer.
- The attacker publishes a modified CLI release or pushes malicious content to the
mainbranch. - A user follows the documented installation command.
npxresolves the unpinned CLI, which then retrieves content from the mutable branch.- 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
View remediation
Remediation Suggestions
- Pin the
skillsnpm package to an exact, reviewed version rather than allowingnpxto resolve a mutable release. - Replace the GitHub
mainbranch 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.
- Pin the
