T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:79
- Finding
- Unpinned Third-Party npm Packages Are Downloaded and Executed## Vulnerability Details **File Location**: `SKILL.md`, lines 79–80; additional occurrences at lines 86, 174, and 177 **Vulnerability Type**: Supply-chain risk caused by unpinned remote package execution **Risk Level**: Medium ### Vulnerable Code ```bash npx soulprint install-deps # OCR + face recognition — only once npx soulprint verify-me # all local, nothing uploaded ``` Additional unpinned commands include: ```bash npx soulprint-network ``` ```bash npx mcp-colombia-hub npx soulprint verify-me ``` ### Technical Analysis The documented commands use `npx` without exact package versions or verified integrity hashes. When the requested package is not already available locally, `npx` can retrieve current package content from the configured npm registry and execute its CLI code with the user's permissions. The `install-deps` subcommand adds further risk because its behavior is controlled by remotely obtained package code and may install additional OCR or face-recognition components. The project contains no lockfile, checksums, package provenance information, or source code through which these installation operations can be independently reviewed. The documentation's statements that processing is local and that nothing is uploaded cannot be verified from the single file included in the audited project. ### Attack Path 1. An attacker compromises the npm account, release pipeline, registry entry, or dependency chain of one of the named packages. 2. The attacker publishes a malicious release under the same package name or compromises a transitive dependency selected by the current release. 3. A user follows the Skill documentation and runs an unversioned `npx` command. 4. `npx` retrieves the current package content rather than a previously audited, immutable version. 5. Package lifecycle scripts or CLI entry points execute attacker-controlled code. 6. The payload operates with the privileges of the ...[truncated 784 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every npm invocation to a reviewed exact version, such as `npx --yes package-name@x.y.z`, rather than relying on the registry's current release. 2. Commit a lockfile for supported installation workflows and use deterministic installation commands such as `npm ci`. 3. Publish expected package integrity hashes and verify downloaded artifacts before execution. 4. Document the package publisher, repository, release signing process, and provenance attestations. 5. Replace the opaque `install-deps` operation with a documented dependency list and explicit installation steps. 6. Review and constrain npm lifecycle scripts. Use `--ignore-scripts` where compatible, then invoke only audited setup operations explicitly. 7. Run identity-processing components in a sandbox with restricted filesystem, network, environment-variable, and wallet access. 8. Clearly document whether each command requires network access and what data may leave the local machine.
