T08 · Insecure Dependencies
- Location
SKILL.md:18- Finding
Unpinned Global Installation of a Third-Party Executable
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 18
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable Code Snippet:
bash npm install -g steam-games-cliTechnical Analysis
The installation command retrieves the current version of
steam-games-clifrom the npm registry without pinning an audited version or integrity hash. Consequently, the executable installed by users may differ from the version assessed during this audit. The project provides no vendored source, lockfile, checksum, or other mechanism for reproducibly verifying the installed implementation.The
-goption installs the package globally, increasing its reach beyond an isolated project environment. Depending on the user's npm configuration and privileges, package installation may also execute npm lifecycle scripts. The documented setup subsequently supplies a Steam Web API key and Steam ID to the installed executable:bash steam config set-key YOUR_API_KEY steam config set-user YOUR_STEAM_IDAlthough no malicious package behavior was observed in the audited project, this installation pattern creates a supply-chain trust boundary that is not adequately constrained.
Attack Path
- An attacker compromises the npm package, its publisher account, or a future package release.
- The attacker adds a malicious lifecycle script or modifies the installed
steamexecutable. - A user follows the documented command, and npm resolves the compromised release because no version is pinned.
- Malicious lifecycle code may execute during the global installation under the privileges of the invoking user.
- During configuration or subsequent use, the compromised executable may access the supplied Steam API key, Steam ID, profile information, and library metadata.
- The executable could transmit accessible information or perform other actions allowed by the invoking us ...[truncated 690 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
steam-games-clito a specifically audited version rather than resolving the latest release. - Record and verify the package integrity hash and document its authoritative npm and source-repository provenance.
- Prefer a project-local, isolated installation over a global installation.
- Use a lockfile or another reproducible dependency mechanism where possible.
- Disable npm lifecycle scripts during installation when they are not required, then explicitly audit any scripts that must run.
- Review how the CLI stores and transmits the Steam API key before supplying credentials.
- Run the CLI with a non-privileged account and avoid installing it through elevated
sudoor administrator privileges. - Provide removal, update, and credential-rotation guidance for users if package compromise is suspected.
- Pin
