T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned npm Package Retrieval and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 12
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumComplete Code Snippet:
markdown 1. **SLBrow server** running: `npx slbrow` or `npm start` in `ai/slbrowmcp/slbrow-mcp/`Technical Analysis
The documented
npx slbrowcommand can retrieve the currently publishedslbrowpackage from the configured npm registry and execute it. The instruction does not specify an exact package version, integrity hash, lockfile, trusted registry, or reviewed source revision.As a result, the code executed by users may differ from the code assessed during this audit. npm package lifecycle scripts and the package's runtime entry point can execute with the privileges of the invoking user. The retrieved
slbrowimplementation is not present in this project, so its behavior cannot be verified from the audited files.This is a supply-chain exposure rather than evidence that the current npm package is malicious.
Attack Path
- An attacker compromises the npm account, publishing pipeline, dependency chain, or registry source associated with
slbrow. - The attacker publishes a malicious or backdoored release under the same package name.
- A user follows the prerequisite instructions and runs
npx slbrow. npxresolves and downloads the unpinned package version from the configured registry.- Package lifecycle or runtime code executes under the user's account.
- The malicious release may access data and resources available to that account or alter the local environment.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the privileges of the user running
npx. Depending on that user's permissions and environment, the malicious package could read accessible files and credentials, modify user-owned data, make network requests, or install additional software.The affected ...[truncated 257 chars]
- An attacker compromises the npm account, publishing pipeline, dependency chain, or registry source associated with
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to an exact, reviewed version instead of using an unversioned command, for example:
bash npx --package=slbrow@X.Y.Z slbrow -
Document the expected package provenance, official registry, publisher, and source repository.
-
Provide a lockfile with verified integrity metadata and require deterministic installation.
-
Install the dependency separately before execution and disable lifecycle scripts where compatible:
bash npm install --ignore-scripts --save-exact slbrow@X.Y.Z -
Review the pinned package source, transitive dependencies, lifecycle scripts, and runtime entry point before recommending execution.
-
Prefer vendoring the reviewed server implementation or referencing an immutable source revision and verified artifact checksum.
-
Use a non-privileged account or isolated environment and grant the browser service only the permissions required for its documented functions.
-
Establish an update process in which new package versions are reviewed and their integrity values updated explicitly.
-
