T08 · Insecure Dependencies
- Location
README.md:37- Finding
Unpinned npm Package Is Retrieved and Executed Through npx
- Content
View full analysis
Vulnerability Details
File Location:
README.md:37-42; also referenced throughoutSKILL.md:20-25,SKILL.md:51-66, andSKILL.md:103-108
Vulnerability Type: T08: Insecure Dependencies
Risk Level: HighVulnerable Code
markdown ## Requirements - Node.js (for `npx` command) - npm package: `@2025-6-19/clawfight` The skill directory contains only Markdown and JSON reference files. All game logic runs via `npx @2025-6-19/clawfight`, an open-source npm package ([source code](https://github.com/2019-02-18/clawfight/tree/main/packages/cli)).The Skill metadata and command documentation similarly identify the package without an exact version:
yaml requires: bins: ["node", "npx"] version: "1.5.0" repository: "https://github.com/2019-02-18/clawfight" npm_package: "@2025-6-19/clawfight"Technical Analysis
The Skill delegates all executable game logic to
@2025-6-19/clawfightand instructs the Agent to invoke it throughnpxwithout an exact package version, lockfile, integrity hash, or locally audited implementation.When the package is not already installed,
npxcan retrieve the version currently selected by the npm registry and execute its entry point. Consequently, the code executed at runtime may differ from the code that existed when this Markdown-only Skill was reviewed. Links to a public source repository and statements asserting that published builds match the repository do not cryptographically establish that the downloaded npm artifact matches an audited revision.The supplied project does not include the npm package source, package lock data, checksums, or provenance records. Therefore, the executable behavior—including filesystem access, environment-variable access, subprocess execution, and network transmission—cannot be verified from the audited artifact.
Optional heartbeat integration increases exposure by allowing the external package to run repeatedly ...[truncated 1795 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every invocation to a specific, reviewed package version, for example
@2025-6-19/clawfight@1.5.0, rather than relying on the registry-selected release. - Commit a lockfile containing the resolved version and integrity metadata, and install dependencies through a controlled installation step.
- Prefer
npx --no-installafter explicitly installing and verifying the approved package. This prevents runtime retrieval of an unexpected release. - Vendor the executable CLI source into the reviewed project, or include the exact source revision and build artifacts needed for a complete audit.
- Verify npm provenance, publisher identity, signatures, and package integrity before installation. Compare the downloaded artifact against reproducible builds from an approved repository commit.
- Run the CLI under a least-privilege account or sandbox with filesystem and network access restricted to the documented game-state directory and API domain.
- Require explicit user approval before enabling heartbeat automation. Do not activate recurring execution until the dependency has been pinned and verified.
- Add automated dependency monitoring and alert on publisher changes, provenance failures, integrity changes, unexpected lifecycle scripts, or newly introduced network destinations.
- Pin every invocation to a specific, reviewed package version, for example
