T08 · Insecure Dependencies
- Location
package-lock.json:5- Finding
Manifest and Lockfile Drift Introduces an Unnecessary Dependency Tree
- Content
View full analysis
Vulnerability Details
File Location:
package-lock.json:5-9andpackage.json:8
Vulnerability Type: T08: Insecure Dependencies
Risk Level: LowThe dependency-free manifest conflicts with the lockfile, which records
clawhuband its transitive dependency tree.json // package-lock.json:5-9 "": { "dependencies": { "clawhub": "^0.9.0" } }json // package.json:8 "dependencies": {}The locked package expands into multiple transitive dependencies:
json // package-lock.json:92-117 "node_modules/clawhub": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/clawhub/-/clawhub-0.9.0.tgz", "integrity": "sha512-p4qFJ84qF194KlGj0LlnuggPk0kKRgbp1wN27aJnRQ5FkwXlEalGqw8wngG2Ghca7q6vbvyVoI4V4KDv2zJWdQ==", "license": "MIT", "dependencies": { "@clack/prompts": "^1.1.0", "arktype": "^2.2.0", "commander": "^14.0.3", "fflate": "^0.8.2", "ignore": "^7.0.5", "json5": "^2.2.3", "mime": "^4.1.0", "ora": "^9.3.0", "p-retry": "^7.1.1", "semver": "^7.7.4", "undici": "^7.24.0" }, "bin": { "clawdhub": "bin/clawdhub.js", "clawhub": "bin/clawdhub.js" }, "engines": { "node": ">=20" } }Technical Analysis
main.jsdoes not import or useclawhub, andpackage.jsonexplicitly declares no dependencies. The stale lockfile nevertheless retainsclawhuband numerous transitive packages. Depending on the package-manager command and version, installation may reject the inconsistency or process unnecessary third-party packages.Every unnecessary dependency increases supply-chain exposure, including the possibility that a future compromised release, registry incident, or vulnerable transitive package affects installation. The reviewed lockfile currently uses standard npm registry URLs and integrity hashes; no malicious source, lifecycle script, or malicious behavi ...[truncated 1378 chars]
- Remediation
View remediation
Remediation Suggestions
- Delete the stale lockfile and regenerate it from the current manifest:
bash rm package-lock.json npm install --package-lock-only - Confirm that the regenerated root package entry contains no dependency on
clawhub. - Commit
package.jsonandpackage-lock.jsontogether whenever dependencies change. - Add a CI clean-install check, such as
npm ci, to reject future manifest and lockfile drift. - Keep the Skill dependency-free unless an external package is required by
main.js. - If dependencies are introduced later, pin reviewed versions, retain integrity metadata, and run dependency vulnerability and provenance checks in CI.
- Delete the stale lockfile and regenerate it from the current manifest:
