T08 · Insecure Dependencies
- Location
SKILL.md:121- Finding
Unpinned npm Packages Permit Mutable Third-Party Code Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 8 and 121–130
Vulnerability Type: Unpinned third-party dependencies and unsafe package execution
Risk Level: MediumVulnerable Code
markdown Use `chrome-devtools-mcp@latest` through `mcporter` to drive Chrome, inspect real pages, and extract structured findings from dynamic websites.markdown Expect a `chrome-devtools` server using a transport similar to: ```text STDIO npx chrome-devtools-mcp@latest --autoConnectIf
mcporteris missing, help the user install it first. If thechrome-devtoolsMCP server is missing, help the user configure or install it instead of stopping at a vague error.Practical install/remediation flow:
bash npm i -g mcporterTechnical Analysis
The Skill explicitly directs users or agents to retrieve and execute
chrome-devtools-mcp@latestthroughnpx. Thelatesttag is mutable and can resolve to a different release each time the command runs. The global installation ofmcporteris likewise unpinned. No lockfile, integrity hash, exact version constraint, trusted registry restriction, or package provenance verification is specified.npm package execution can invoke package runtime code and, depending on npm configuration, installation lifecycle scripts. Consequently, the code that executes is not the same immutable content that was available during this audit. A compromised maintainer account, malicious package release, registry compromise, or compromised transitive dependency could introduce arbitrary local code into this workflow.
Attack Path
- An attacker compromises the npm account, release process, registry entry, or dependency chain associated with
chrome-devtools-mcpormcporter. - The attacker publishes a malicious version and assigns it to the
latesttag, or causes the unversioned installation to resolve to the compromised release. - A user or agent follo ...[truncated 1000 chars]
- An attacker compromises the npm account, release process, registry entry, or dependency chain associated with
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestand unversioned installation commands with exact, reviewed package versions. - Maintain a lockfile containing package integrity metadata and review changes before upgrades.
- Pin both direct and transitive dependencies where the deployment mechanism permits.
- Use a trusted npm registry and enforce package provenance or signature verification.
- Prefer a project-local installation over a global installation to reduce scope.
- Disable npm lifecycle scripts during installation where they are unnecessary, then explicitly enable only reviewed behavior.
- Execute browser automation tooling in a sandbox, container, or dedicated low-privilege account.
- Establish a controlled update process that audits new versions before changing the pinned dependency.
- Replace
