T08 · Insecure Dependencies
- Location
SKILL.md:63- Finding
Unpinned Third-Party Package Retrieval and Execution via npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 63-65
Vulnerability Type: Unpinned dependency execution
Risk Level: MediumVulnerable Code:
bash # Or use node npx http-server -p 8082Technical Analysis
The documented workflow invokes
http-serverthroughnpxwithout specifying a version, verifying package integrity, or requiring an existing local installation. If the package is not already installed,npxmay retrieve it from the configured npm registry and execute it immediately.This makes the effective executable dependency mutable after the Skill has been audited. A compromised package maintainer account, malicious package release, dependency-chain compromise, or attacker-controlled npm registry configuration could cause arbitrary JavaScript or package lifecycle code to execute.
The issue is a supply-chain weakness rather than evidence that the current
http-serverpackage is malicious.Attack Path
- An attacker compromises the relevant npm package, one of its dependencies, or the package registry configured on the host.
- The attacker publishes or serves a malicious version containing lifecycle or runtime code.
- A user asks the Agent to generate and preview a chart.
- The Agent follows the documented Node.js workflow and runs
npx http-server -p 8082. npxresolves and downloads the unpinned package from the configured registry.- The malicious package code executes with the operating-system privileges of the Agent or user running the command.
Impact Assessment
Successful exploitation could provide arbitrary code execution under the invoking user account. The attacker could access files, environment variables, credentials, chart data, and network resources available to that account. The issue does not directly provide elevated system privileges, but its scope includes all resources accessible to the Agent process and user.
- Remediation
View remediation
Remediation Suggestions
- Remove the implicit-download workflow and prefer an already installed, trusted server such as Python's standard-library HTTP server.
- If Node.js support is necessary, vendor and audit the required package or declare it in a lockfile with an exact version and integrity metadata.
- Use
npx --no-install http-serverwhen execution must be limited to a package that is already installed locally. - Configure npm to use an approved registry and enforce lockfile and integrity verification.
- Avoid package lifecycle scripts where possible, and perform dependency vulnerability and provenance checks before distributing an updated Skill.
