T08 · Insecure Dependencies
- Location
README-en.md:173- Finding
Unpinned Third-Party Package Execution in English Installation Instructions
- Content
View full analysis
Vulnerability Details
File Location:
README-en.md:173-180
Vulnerability Type: Unpinned package retrieval and execution
Risk Level: MediumVulnerable Code:
bash Via [skills.sh](https://skills.sh) (works for Claude Code, Cursor, Codex, CodeBuddy, OpenCode, and [50+ other agents](https://github.com/vercel-labs/skills#supported-agents)): # Global install — available across all projects npx skills add dimayip/learn-x -g -a claude-code # Project-scoped install — committed with your repo npx skills add dimayip/learn-x -a codebuddyTechnical Analysis
The installation instructions invoke
npx skillswithout pinning an exact package version or verifying package integrity. If the package is not already available locally,npxcan retrieve the current version of theskillspackage from the configured package registry and execute its code.Consequently, the code executed by this command is mutable and is not limited to the static repository content covered by this audit. A future compromised, replaced, or unexpectedly modified package release could run arbitrary installation logic. The global installation option additionally permits the installer to modify Skill directories shared across projects.
This is a supply-chain weakness rather than evidence that the current package is malicious.
Attack Path
- An attacker compromises the registry package, its maintainer account, or its publication pipeline.
- The attacker publishes a malicious version under the package name resolved by
npx skills. - A user follows the documented installation command without specifying a reviewed version.
npxdownloads and executes the attacker-controlled package code.- The malicious installer operates with the invoking user's privileges and can modify files accessible to that user, including Agent configuration or shared Skill directories.
Impact Assessment
Successful exploitation could p ...[truncated 498 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the installer to an exact, reviewed package version rather than resolving the latest release implicitly.
- Use a lockfile-backed installation workflow where supported.
- Publish and verify package integrity information, such as a registry integrity digest or documented checksum.
- State the exact registry and package identity that the command is expected to resolve.
- Prefer project-scoped installation by default and document the additional scope of global installation.
- Recommend reviewing the package provenance, release signature, and lifecycle scripts before execution.
- Consider presenting the non-executing repository clone method as the primary installation path, ideally pinned to a reviewed commit or release tag.
