T08 · Insecure Dependencies
- Location
SKILL.md:28- Finding
Unpinned npm Package Is Automatically Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:28-42,SKILL.md:103-110,README.md:11-15
Vulnerability Type: Unpinned third-party package execution
Risk Level: HighThe Skill repeatedly instructs agents and CI systems to execute
preflyt-checkthroughnpxwithout specifying an audited package version or using an integrity-protected lockfile.Relevant command examples from
SKILL.md:28-42:bash npx preflyt-check https://your-deployed-url.combash # Fail if issues found (for CI/CD) npx preflyt-check https://your-deployed-url.com --fail # Generate a shareable report link npx preflyt-check https://your-deployed-url.com --share # With Pro license for unlimited scans npx preflyt-check https://your-deployed-url.com --key YOUR_LICENSE_KEYThe automatic execution behavior is defined in
SKILL.md:103-110:markdown ## Agent behavior When a deployment to a public URL is detected: 1. Run `npx preflyt-check <deployed-url>` 2. If HIGH severity findings exist, recommend immediate fix 3. If MEDIUM or LOW findings, inform the user and suggest fixes 4. If no findings, confirm deployment appears safe 5. Never let a Preflyt error block a deployment - if the scan fails, report the error and move onThe same unpinned invocation is presented as the standard usage in
README.md:11-15:markdown Your agent runs this after any deploy: ```bash npx preflyt-check https://your-site.comtext ### Technical Analysis An `npx` invocation without an exact package version can resolve and download the package version currently exposed by the npm registry. The reviewed project contains no local implementation, committed dependency lockfile, integrity hash, or package provenance verification that constrains which code will execute. Consequently, the executable payload can change after this Skill has been reviewed. If the npm publisher account, package, registry ...[truncated 2318 chars]- Remediation
View remediation
Remediation Suggestions
-
Pin
preflyt-checkto an exact, reviewed version rather than resolving the registry's current version:bash npx --yes preflyt-check@<audited-exact-version> https://your-deployed-url.com -
Prefer declaring the scanner in
devDependencies, committing the generated lockfile, and installing with lockfile enforcement:bash npm install --save-dev --save-exact preflyt-check@<audited-exact-version> npm ci npx --no-install preflyt-check https://your-deployed-url.com -
Commit
package-lock.jsonand usenpm ciso unexpected dependency changes cause installation failure rather than silent resolution to newer packages. -
Verify npm package provenance, publisher ownership, release signatures where available, and integrity metadata before approving version updates.
-
Execute the scanner in a sandboxed, least-privileged job with no write access to deployment artifacts and no unrelated CI secrets. Restrict outbound network access to destinations required for the documented scan.
-
Avoid passing license keys directly on the command line where they may be exposed through process listings or logs. If the package supports a protected environment variable or secret-file mechanism, use that mechanism and expose the secret only to the isolated scan step.
-
Require explicit user approval before downloading or executing a package version that is not already installed and verified locally.
-
Update every invocation in
SKILL.mdandREADME.md, including deployment scripts, Git hooks, and GitHub Actions examples, so users are not directed back to the unpinned command.
-
