T08 · Insecure Dependencies
- Location
SKILL.md:68- Finding
Unpinned npm Package Is Downloaded and Executed at Runtime
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:68-90
Additional Locations:SKILL.md:105-108,128,408;references/cli-commands.md:10,41,77,122,156-168,187;references/token-setup.md:34,46,91,126
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code
bash npx daxiapi-cli@latest config get tokenbash npx daxiapi-cli@latest config set token YOUR_TOKEN_FROM_DAXIAPIbash npx daxiapi-cli@latest market tempThe same runtime installation pattern is used for other operations:
bash npx daxiapi-cli@latest market compass npx daxiapi-cli@latest market style npx daxiapi-cli@latest market valueTechnical Analysis
The Skill repeatedly instructs the Agent to invoke
npx daxiapi-cli@latest. Unless an appropriate verified version is already cached,npxcan retrieve the current package release and immediately execute it. The@latestselector is mutable, so the effective executable may change after the Skill has been reviewed.The project does not provide a pinned version, lockfile, integrity hash, vendored implementation, registry restriction, or package-publisher verification procedure. This creates a supply-chain trust boundary outside the audited project. The downloaded CLI also receives or accesses the user's DAXIAPI bearer token, increasing the sensitivity of a dependency compromise.
The network access to DAXIAPI itself is necessary for the declared market-analysis functionality. However, dynamically executing an unpinned package is not the minimum-risk mechanism needed to perform that access.
Attack Path
- An attacker compromises the npm package publisher, a maintainer account, the package itself, or one of its transitive dependencies.
- The attacker publishes a malicious version under the release tag selected by
@latest. - The Agent follows the Skill and runs
npx daxiapi-cli@latest. - ` ...[truncated 1100 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace every
daxiapi-cli@latestreference with a specific, reviewed package version. - Use a lockfile and integrity metadata, or vendor an audited client implementation into the Skill.
- Verify the expected npm publisher, package provenance, registry, and integrity before execution.
- Require explicit user approval before downloading or executing the CLI for the first time.
- Prefer a minimal HTTPS client that calls only the documented DAXIAPI endpoint rather than executing a mutable general-purpose package.
- Run the client in a restricted environment with limited filesystem access and only the required credential.
- Re-audit the dependency and its transitive dependency tree before upgrading the pinned version.
- Replace every
