T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned Global npm Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 5
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code Snippet:
yaml compatibility: Requires nla CLI installed (npm install -g nla). Requires a funded Ethereum wallet whose address matches the oracle specified in escrows.Technical Analysis
The documentation directs users to install the
nlapackage globally from npm without specifying an exact version, package integrity value, or verified source. Consequently, the command resolves to whichever package release is associated with the latest applicable npm tag at installation time rather than to a version reviewed alongside this Skill.npm packages can execute code through installation lifecycle scripts and installed command-line entry points. If the package, its maintainer account, or one of its transitive dependencies is compromised, a user following this instruction could execute attacker-controlled code. Global installation also increases exposure because the executable is made available system-wide for the installing user.
The repository contains no bundled malicious scripts, and the audited instruction does not itself prove that the current
nlapackage is malicious. The vulnerability is the absence of dependency pinning and integrity or provenance controls in a security-sensitive workflow involving Ethereum wallet credentials and LLM API keys.Attack Path
- An attacker compromises the
nlanpm package, a maintainer account, or a transitive dependency, or publishes a malicious future release through the package's distribution channel. - The malicious release becomes the version selected by the unpinned
npm install -g nlacommand. - A user follows the prerequisite instruction and globally installs the package.
- Attacker-controlled code executes through an npm lifecycle script or when the user invokes the installed
nlaexecutable. - The ma ...[truncated 1204 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Replace the floating installation command with an exact, reviewed version, such as
npm install -g nla@<approved-version>. - Document the package's official npm namespace, publisher, source repository, and expected provenance so users can verify that they are installing the intended package.
- Verify package integrity and signatures where supported. Record the reviewed package artifact's checksum or npm integrity metadata in release documentation.
- Review and pin transitive dependencies through a lockfile in a controlled local installation rather than relying on an unconstrained global installation.
- Prefer a project-local installation invoked through a pinned package script or an independently verified binary. Avoid elevated installation privileges.
- Audit lifecycle scripts before installation and consider installing with lifecycle scripts disabled when they are not required.
- Execute the CLI in an isolated, least-privileged environment with only the credentials needed for the immediate operation.
- Avoid passing private keys or API keys directly on the command line, and ensure secrets are not exposed to unrelated processes or retained in shell history.
- Establish a dependency-update process in which new versions are reviewed and tested before the documented pin is changed.
- Replace the floating installation command with an exact, reviewed version, such as
