T08 · Insecure Dependencies
- Location
SKILL.md:134- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 134
Vulnerability Type: Unpinned and globally installed third-party dependency
Risk Level: MediumVulnerable Code
markdown | bird not installed | `bird: command not found` | bird CLI is not installed globally | Run `npm install -g bird` |Technical Analysis
The Skill instructs users to install the
birdnpm package globally without specifying an exact version, integrity hash, verified publisher, or authoritative source repository. Consequently, the code installed on a user's system may change independently of the reviewed Skill.Global npm installation can execute package lifecycle scripts with the invoking user's privileges and makes the installed command available across the user's environment. This exceeds the minimum privilege needed for a self-contained bookmark-processing Skill; a project-local, pinned dependency would provide a narrower execution and modification scope.
The supply-chain risk is particularly significant because the same workflow asks users to store sensitive X session credentials, including
auth_tokenandct0, in a local.envfile. A compromised, substituted, or malicious dependency executed from the project directory could attempt to read those credentials. The available artifact contains nopackage.json, lockfile, implementation scripts, or dependency integrity information, so the identity and behavior of the installed package cannot be verified.The audit did not establish that the referenced package is currently malicious. The vulnerability is the unsafe dependency acquisition and installation practice.
Attack Path
- An attacker compromises the referenced npm package, gains control of a future release, or causes users to resolve an unintended package through registry or package-name confusion.
- A user follows the troubleshooting instruction and runs
npm install -g bird. - npm retrieves the muta ...[truncated 1280 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the global installation instruction with a project-local dependency installed under the Skill directory.
- Pin the dependency to an exact, reviewed version rather than using an unconstrained package reference.
- Commit a lockfile and require integrity verification during installation.
- Document the package's official npm namespace, publisher, source repository, and expected checksum or provenance.
- Review package contents and lifecycle scripts before adoption. Disable installation scripts where they are unnecessary.
- Prefer bundling a small, audited implementation if only limited bookmark-fetching behavior is required.
- Run the dependency in a restricted environment with access only to required files and X endpoints.
- Prevent dependency processes from reading unrelated user files or making unrestricted outbound network requests.
- Keep X credentials in a permission-restricted credential store and expose them only to the specific process that requires them.
- Include the missing
package.json, lockfile, implementation scripts, and endpoint policy in future audit artifacts so dependency behavior and credential handling can be verified.
