T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Global Installation and Execution of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 13-17
Vulnerability Type: Unpinned third-party dependency installed globally and immediately executed
Risk Level: Mediumbash **Via npm:** ```bash npm install -g @reghoul/pm-dashboard pm-dashboard init pm-dashboard starttext ### Technical Analysis The installation instructions retrieve the currently published version of `@reghoul/pm-dashboard` without specifying an exact version or verifying its integrity or provenance. The package is installed globally and its commands are then immediately executed. npm packages can run installation lifecycle scripts, while the subsequent `init` and `start` commands execute package-controlled code directly. Because the package implementation is not included in the audited project, its filesystem operations, network communications, server configuration, and treatment of project-state data cannot be independently reviewed from this artifact. The same supply-chain exposure also applies to the unpinned update command documented at `SKILL.md`, lines 44-48: ```bash **Via npm:** ```bash npm update -g @reghoul/pm-dashboardtext This finding does not establish that the referenced package is malicious. It identifies an unsafe dependency acquisition and execution pattern that permits an unreviewed or compromised future release to become the effective executable payload. ### Attack Path 1. An attacker compromises the package publisher account, registry release process, or another relevant supply-chain component. 2. The attacker publishes a malicious release under the expected package name. 3. A user follows the documented command without an exact version constraint. 4. npm resolves and globally installs the attacker-controlled release. 5. Malicious lifecycle code may execute during installation, or malicious runtime code executes when the user invokes `pm-dashboard init` or `pm-dashboard start`. ...[truncated 841 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a specific, reviewed version rather than resolving the latest release:
bash npm install --global @reghoul/pm-dashboard@<reviewed-version> - Document the expected package provenance, publisher identity, source repository, and release verification process.
- Verify registry integrity metadata or signed release provenance before installation.
- Prefer a project-local or isolated installation over a global installation, and execute it through a controlled package script or sandbox.
- Review npm lifecycle scripts before installation and disable them with
--ignore-scriptswhere compatible with the package. - Run the dashboard under a dedicated, least-privileged account or container with narrowly scoped filesystem and network access.
- Replace unrestricted update instructions with a controlled process that pins, reviews, tests, and approves each new version before deployment.
- Include the dashboard implementation or a verifiable source reference in the audited artifact so its server exposure, state handling, and network behavior can be assessed.
- Pin the dependency to a specific, reviewed version rather than resolving the latest release:
