T08 · Insecure Dependencies
- Location
SKILL.md:51- Finding
Unpinned Third-Party Dependencies Installed Without Lockfile Integrity Controls
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:51-59
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumVulnerable Code
markdown ## Dependencies - puppeteer-extra - puppeteer-extra-plugin-stealth - puppeteer ## Install dependencies ```bash cd ~/.openclaw/workspace/skills/noon-product-count npm install puppeteer-extra puppeteer-extra-plugin-stealth puppeteertext ### Technical Analysis The installation instructions retrieve three npm packages without specifying reviewed versions. The audited project also contains no `package.json` or package lockfile, so npm resolves mutable current versions and their transitive dependencies whenever the command is run. This prevents reproducible installation and makes the effective dependency code differ from the code reviewed during this audit. npm packages may also define lifecycle scripts that execute during installation with the permissions of the user running npm. There is no evidence that the named packages are currently malicious. The vulnerability is the absence of version pinning, lockfile integrity metadata, and dependency provenance controls. ### Attack Path 1. An attacker compromises a listed package, one of its transitive dependencies, a maintainer account, or the npm registry path used by the victim. 2. The attacker publishes a malicious version that remains compatible with npm's unconstrained resolution. 3. A user follows the documented command: `npm install puppeteer-extra puppeteer-extra-plugin-stealth puppeteer`. 4. npm resolves and downloads the attacker-controlled release because no reviewed version or lockfile constrains resolution. 5. Malicious code executes through an npm lifecycle script during installation or when `index.js` imports and uses the compromised package. 6. The payload operates with the filesystem, process, and network privileges of the user who invoked npm or the Skill. ### Impact Assessment Successful exploitation ...[truncated 453 chars]- Remediation
View remediation
Remediation Suggestions
- Add a
package.jsoncontaining exact, reviewed dependency versions rather than unconstrained package names. - Generate and commit a
package-lock.jsonso direct and transitive dependency versions and integrity hashes are reproducible. - Replace the documented installation command with
npm ci, which installs strictly from the committed lockfile and fails when the manifest and lockfile disagree. - Review package provenance, maintainers, lifecycle scripts, and transitive dependencies before approving versions.
- Run dependency auditing and update scanning in CI, but apply upgrades only after review and testing.
- Use a trusted registry and protect npm configuration from registry substitution or dependency-confusion sources.
- Where operationally feasible, install dependencies with lifecycle scripts disabled first (
npm ci --ignore-scripts), review required scripts, and execute only explicitly approved installation steps. - Run the Skill under a dedicated, least-privileged account or sandbox with restricted filesystem and network access.
- Add a
