T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Third-Party Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 14
Vulnerability Type: Supply-chain risk caused by unpinned package execution
Risk Level: MediumComplete Code Snippet:
markdown - SDK: `import { VeezeeClient } from "@veezee/sdk"`; `const client = new VeezeeClient(); await client.mint();` mints and stores the free key the first time and reuses it on later runs. Platform methods live on the namespace (`client.linkedin.getProfile/searchPeople/getCompany/getPosts`); `client.resolveUrl` and `client.getUsage` are top-level. The client sends retries and Idempotency-Keys for you. The `veezee` CLI (`npx @veezee/sdk init`) mints and stores the same key.Technical Analysis
The skill instructs the user or Agent to run
npx @veezee/sdk initwithout pinning the dependency to a specific audited version. Depending on the local npm andnpxconfiguration, this command may download and immediately execute the package version currently resolved from the configured npm registry.The project provides no exact version, package-lock file, integrity hash, checksum-verification procedure, or source-review requirement. Consequently, the code executed at installation time can differ from the code that existed when the skill was audited. Exploitation would require compromise or malicious control of the package, its publisher account, a dependency, or the configured package registry.
Attack Path
- An attacker compromises the
@veezee/sdkpublishing account, package supply chain, or package registry used by the victim. - The attacker publishes or serves a malicious package version containing an installation-time or CLI payload.
- A user or Agent follows the skill instructions and runs
npx @veezee/sdk init. npxresolves and downloads the unpinned package version.- The malicious package executes with the privileges of the invoking user.
- The payload may access files, environment variables, Agent co ...[truncated 593 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Replace the unversioned command with an exact, audited package version, such as
npx --package=@veezee/sdk@<approved-version> veezee init. - Manage the dependency through a committed lockfile containing registry-resolved integrity metadata.
- Install dependencies in a separate verification step and use
npm cirather than resolving the latest available release during skill execution. - Verify package provenance, publisher identity, signatures or attestations, and integrity hashes before execution.
- Run initialization in a least-privileged, isolated environment with access only to the files and credentials required for the task.
- Document where the minted API key is stored and require restrictive file permissions or an operating-system credential store.
- Establish a controlled upgrade process in which new SDK versions are reviewed and tested before the pinned version is changed.
- Replace the unversioned command with an exact, audited package version, such as
