T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Global npm Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 20-23
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumCode Snippet:
markdown - **Letta Code** — run agents locally in your terminal (requires Node.js 18+) ```bash npm install -g @letta-ai/letta-code ```Technical Analysis
The documented command installs
@letta-ai/letta-codewithout specifying an exact version. npm therefore resolves the package through a mutable distribution tag, normallylatest, meaning that the code installed by a future user may differ from the code available when this skill was audited.The
-goption installs the package globally. Depending on the npm configuration and how the command is invoked, package binaries become available system-wide or throughout the user's environment. npm installation can also run package lifecycle scripts unless those scripts are explicitly disabled. Consequently, compromise of the package, its release process, registry account, or transitive dependency could result in attacker-controlled code executing during installation.The project does not include a lockfile, integrity value, package source validation, or a reviewed local copy of the dependency. This finding does not establish that the named package is malicious; it identifies an unsafe and mutable supply-chain installation procedure.
Attack Path
- An attacker compromises the npm package, a maintainer account, the package publication pipeline, or a transitive dependency.
- The attacker publishes a malicious release under the distribution tag resolved by the unpinned command.
- A user follows the skill documentation and runs
npm install -g @letta-ai/letta-code. - npm downloads the mutable release and may execute attacker-controlled lifecycle scripts during installation.
- The malicious package executes with the installing user's privileges and can expose a globally ...[truncated 795 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to a reviewed exact version rather than relying on a mutable distribution tag:
bash npm install @letta-ai/letta-code@<audited-exact-version> - Prefer a project-local dependency recorded in
package.jsonand a committed lockfile over a global installation. - Use
npm ciwith a reviewed lockfile in reproducible or automated environments. - Verify package provenance, publisher identity, registry source, and integrity metadata before installation.
- Disable lifecycle scripts with
--ignore-scriptswhen the package functions correctly without them; otherwise, audit all required installation scripts. - Run the installation as an unprivileged user and explicitly warn users not to invoke it with
sudoor an administrator shell. - Periodically review the pinned release and its transitive dependency tree before performing controlled upgrades.
- Pin the package to a reviewed exact version rather than relying on a mutable distribution tag:
