T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:31
- Finding
- Unpinned package execution through npx## Vulnerability Details **File Location**: `SKILL.md`, line 31 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ```bash npx playwright install chromium ``` ### Technical Analysis The installation instructions invoke the `playwright` executable through `npx` without specifying a trusted version or requiring a verified local installation. If `playwright` is not already present in the local dependency tree, `npx` may offer to retrieve and execute a package from the configured npm registry. The audited project contains only `SKILL.md`; no `package.json`, lockfile, integrity metadata, or vendored executable is present to establish which Playwright version should be trusted. Consequently, the command's effective behavior can depend on mutable registry state and local npm configuration. This creates a supply-chain execution risk rather than evidence that Playwright itself is malicious. Exploitation requires an attacker to influence package resolution, such as through a compromised registry account, malicious registry mirror, altered npm configuration, DNS or network compromise where transport protections are bypassed, or future compromise of a remotely resolved package version. ### Attack Path 1. A user follows the documented setup instructions on a system where `playwright` is not installed locally. 2. `npx` resolves the unversioned `playwright` executable using the system's configured npm registry. 3. An attacker has compromised the resolved package or controls an untrusted registry or mirror selected by the npm configuration. 4. The user accepts installation if prompted. 5. npm downloads the attacker-controlled package and may run package lifecycle behavior or its executable under the user's account. 6. The malicious process inherits the invoking user's environment and filesystem access. ### Impact Assessment Successful exploitation permits arbitrary code execution with the privi ...[truncated 468 chars]
- Remediation
- ## Remediation Suggestions - Add a project manifest and lockfile that pin an explicitly reviewed Playwright version. - Install dependencies using a lockfile-enforcing command such as `npm ci` rather than dynamically resolving packages through an unversioned `npx` invocation. - Invoke the verified local executable with `npx --no-install playwright install chromium` or an equivalent package-manager command that refuses registry fallback. - Configure an approved npm registry and retain integrity hashes in the committed lockfile. - Run dependency installation in a restricted environment without sensitive credentials and with only the filesystem permissions required for setup. - Use automated dependency scanning and review version updates before changing the pinned dependency.
