T08 · Insecure Dependencies
- Location
SKILL.md:23- Finding
Unpinned Third-Party Packages Are Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:23-27andSKILL.md:50-55
Vulnerability Type: Unpinned package-runner dependency execution
Risk Level: MediumVulnerable Code
SKILL.md:23-27:bash npx saizeriya.js help bunx saizeriya.js helpSKILL.md:50-55:bash npx -y qr-scanner-cli /path/to/qr-photo.jpg --clearThen use the returned URL as the
<qrurl>argument when starting a session:bash npx saizeriya.js start <name> <qrurl> [--people <count>]Technical Analysis
The skill directs the agent to invoke
saizeriya.jsandqr-scanner-clithrough package runners without pinning either dependency to a reviewed version or integrity digest. When the packages are not already cached,npxorbunxcan retrieve the current registry release and immediately execute its installation hooks and application code.The
-yoption used withqr-scanner-clisuppresses the package installation confirmation, further reducing the opportunity to review the package and version before execution. Referencing an upstream GitHub repository in the surrounding instructions does not ensure that the package fetched from the registry corresponds to a particular reviewed commit or artifact.This is a supply-chain weakness rather than evidence that the currently published packages are malicious. The effective code executed by the skill can nevertheless change after the skill itself has been audited.
Attack Path
- An attacker compromises the registry account, release pipeline, or another distribution component associated with one of the named packages.
- The attacker publishes a malicious or compromised package version under the package name used by the skill.
- A user asks the agent to operate the ordering CLI or decode a QR image.
- The agent follows the skill and invokes the unversioned
npxorbunxcommand. - The package runner downloads ...[truncated 891 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every executed package to an explicitly reviewed version, such as
npx saizeriya.js@X.Y.Z, rather than resolving the latest registry release. - Maintain a lockfile containing integrity hashes and install dependencies through a reproducible, locked workflow.
- Verify package ownership, provenance, signatures, and the correspondence between the registry artifact and the intended source repository.
- Remove
-ywhere practical so unexpected downloads are not accepted automatically. - Prefer preinstalling reviewed packages in a controlled environment instead of downloading executable code during skill operation.
- Run the CLI in a sandbox with restricted filesystem access, a minimal environment, and network access limited to required service endpoints.
- Establish a dependency-update process in which new versions are reviewed and tested before changing the pinned version or integrity data.
- Pin every executed package to an explicitly reviewed version, such as
