T08 · Insecure Dependencies
- Location
SKILL.md:35- Finding
Unpinned Global Installation of a Third-Party Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 35-40
Vulnerability Type: Unverified and unpinned third-party dependency installation
Risk Level: MediumVulnerable Code Snippet:
markdown ## Prerequisites - **macOS** (NemoClaw uses the macOS sandbox) - **NemoClaw installed**: `npm install -g nemoclaw` or clone from GitHub - **Email MCP server configured**: e.g., `email-agent-mcp` with Microsoft 365 OAuth completedTechnical Analysis
The Skill directs users to install
nemoclawglobally without specifying an audited version, package integrity value, or canonical source repository. The alternative instruction to “clone from GitHub” also omits a repository URL, commit hash, signed release, or verification process.A global npm installation can run package lifecycle scripts, including
preinstall,install, andpostinstall, under the installing user's privileges. Because the requested package version is not pinned, its effective contents can change after this Skill has been reviewed. An npm account compromise, malicious future release, package-name confusion, or selection of an unofficial GitHub repository could therefore introduce attacker-controlled code.This is a supply-chain weakness rather than evidence that the current
nemoclawpackage is malicious.Attack Path
- An attacker compromises the package publisher, publishes a malicious future version, or distributes an unofficial repository matching the ambiguous GitHub instruction.
- The malicious package includes attacker-controlled npm lifecycle code.
- A user follows the Skill and runs
npm install -g nemoclaw, or clones the attacker's repository. - npm executes the package lifecycle scripts during installation.
- The malicious code runs with the privileges of the installing account and can modify user-accessible files, steal credentials available to that account, or alter globally installed tooling.
Im
...[truncated 494 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a specifically reviewed version, for example
nemoclaw@X.Y.Z. - Publish the canonical npm package URL and canonical source repository URL.
- Provide a release integrity hash, signed tag, or other reproducible verification mechanism.
- Recommend installing in an isolated, project-local environment rather than globally where feasible.
- Use
--ignore-scriptswhen lifecycle scripts are unnecessary; otherwise document and audit every required lifecycle script. - Replace “clone from GitHub” with a specific repository and immutable commit hash.
- Document a controlled upgrade process so later versions are reviewed before deployment.
- Pin the dependency to a specifically reviewed version, for example
