T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:78
- Finding
- Unpinned Package Execution Through Global npx Installation## Vulnerability Details **File Location**: `SKILL.md:78` **Vulnerability Type**: Supply-chain exposure through an unpinned package installer **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add zhaoxinghua09-cell/agent-skills -g ``` ### Technical Analysis The installation instructions invoke the mutable `skills` package through `npx` without specifying an audited version or integrity digest. If the package is not already available locally, `npx` can retrieve it from the configured package registry and execute its package entry point. The `-g` option also requests a global Skill installation, expanding the resulting changes beyond the current project. The command therefore delegates code execution and global installation behavior to an unpinned third-party dependency whose contents may change after this Skill has been reviewed. This behavior is not required for the scanner's core functionality. The scanner itself is a standard-library Python script and can run locally without a third-party runtime dependency. ### Attack Path 1. An attacker compromises the registry package, its publisher account, or another component in the package resolution path. 2. The attacker publishes a malicious version that remains compatible with the unpinned package name. 3. A user follows the documented `npx skills add ... -g` instruction. 4. `npx` resolves and downloads the attacker-controlled version. 5. The package executes with the privileges of the invoking user and performs global installation operations. 6. The malicious package can modify user-accessible files, install altered Skills, read data available to that user, or influence subsequent Agent sessions. ### Impact Assessment Successful exploitation provides code execution with the invoking user's operating-system privileges. The global installation option can affect the user's shared Agent environment rather than only the audited project. It does not independently g ...[truncated 89 chars]
- Remediation
- ## Remediation Suggestions - Pin the installer to an explicitly reviewed version instead of relying on the latest registry resolution. - Publish and verify a package integrity digest or signed release. - Avoid global installation unless it is strictly necessary and explicitly authorized. - Prefer invoking a reviewed local installer with a locked dependency set. - Document the exact package source, version, expected checksum, and files the installer will modify. - Advise users not to run installation commands with elevated privileges.
