T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned External Financial-Data CLI Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10-17
Vulnerability Type: Unpinned and unaudited third-party dependencies
Risk Level: MediumVulnerable Code
bash # Install globally npm install -g spend-pulse # Or from source git clone https://github.com/jbornhorst1524/spend-pulse.git cd spend-pulse npm install && npm run build && npm linkTechnical Analysis
Both documented installation methods retrieve and execute mutable external code without pinning it to a reviewed package version, immutable commit, or verified integrity digest.
The global npm installation may execute package lifecycle scripts with the user's privileges. The source installation clones the repository's default branch and then runs dependency lifecycle scripts and the project's build process. The effective code can therefore change after this Skill has been reviewed.
The audited project contains only
SKILL.md; it does not include the CLI source, dependency manifest, or lockfile. Consequently, the implementation that receives Plaid credentials, handles bank access tokens, processes transactions, and stores local data cannot be verified from this artifact.Attack Path
- An attacker compromises the
spend-pulsenpm package, its publisher account, the referenced GitHub repository, or a transitive dependency. - The attacker publishes malicious code or modifies the mutable default branch.
- A user follows one of the installation commands in
SKILL.md. - npm lifecycle scripts, dependency installation hooks, or the project's build script execute the modified code locally.
- The malicious code accesses data available to the user account, potentially including Plaid credentials, bank access tokens, transaction records, and other readable local files.
- The code may transmit collected information or perform other actions within the installing user's privileges.
Impact Assessment
...[truncated 663 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin the npm package to a specifically reviewed version instead of installing the latest release implicitly.
- Pin source installations to an immutable, reviewed commit hash or signed release tag.
- Publish and verify cryptographic checksums or signatures for release artifacts.
- Include the relevant source, package manifest, and lockfile in the auditable artifact.
- Use deterministic installation commands such as
npm ciwith a committed lockfile. - Review package lifecycle and build scripts before execution; disable lifecycle scripts where they are unnecessary.
- Prefer a project-local or isolated installation over global installation.
- Document the CLI's network destinations, credential handling, keychain access, local file permissions, and financial-data retention behavior.
- Apply dependency scanning and provenance verification to releases and transitive dependencies.
