T08 · Insecure Dependencies
- Location
SKILL.md:9- Finding
Automatic Global Installation of an Unpinned Third-Party Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 9-15
Vulnerability Type: Unpinned third-party dependency installed globally without integrity verification
Risk Level: MediumVulnerable Code
markdown ## Auto-Installation The skill automatically installs `@kilincarslan/dexscreener-cli` if not found: ```bash which dexscreener || npm install -g @kilincarslan-enterprises/dexscreener-clitext The declared package name and the package actually installed are inconsistent: the surrounding text specifies `@kilincarslan/dexscreener-cli`, while the command installs `@kilincarslan-enterprises/dexscreener-cli`. ### Technical Analysis The skill instructs the agent to install the latest registry version of a third-party npm package globally. It does not pin an audited version, verify an integrity hash, disable npm lifecycle scripts, or require explicit user approval. npm packages can execute lifecycle scripts during installation. Consequently, the effective code executed by this skill is not limited to the reviewed `SKILL.md`; it also includes mutable package content obtained from the npm registry. If the publisher account, package, registry delivery path, or a future release is compromised, installation can execute arbitrary code with the permissions of the npm process. The discrepancy between the documented package scope and the installed package scope also creates a mistaken-package or dependency-confusion risk. Global installation further increases exposure by modifying the account's command environment outside a project-local dependency boundary. ### Attack Path 1. A user requests DexScreener market data. 2. The agent follows the skill and checks for a `dexscreener` executable. 3. If the executable is absent, the shell's `||` branch runs automatically. 4. npm resolves the unpinned current version of `@kilincarslan-enterprises/dexscreener-cli`. 5. A compromised or malicious package versio ...[truncated 664 chars]- Remediation
View remediation
Remediation Suggestions
- Use one consistent, verified package name in the metadata, documentation, and installation command.
- Pin the dependency to a specifically reviewed version rather than resolving the latest release.
- Verify package integrity using an approved lockfile and registry integrity metadata.
- Require explicit user confirmation before installing external software.
- Prefer a project-local dependency over
npm install -gand invoke its verified local binary. - Disable lifecycle scripts during installation where compatible, then review any scripts required for operation.
- Execute the CLI in a sandbox with minimal filesystem, credential, environment-variable, and network access.
- Consider querying the documented DexScreener API directly through a constrained HTTP client, removing the automatic package-installation path entirely.
