T08 · Insecure Dependencies
Error
- Location
- SKILL.md:17
- Finding
- Unpinned npm Package Is Executed Through npx on Bot and User Systems<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:17-21`, `SKILL.md:84-88`, `references/setup.md:19-29`, `references/setup.md:79-83`, `references/setup.md:113-142` **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: High ### Vulnerable Code `SKILL.md:17-21`: ```yaml install: - kind: node package: health-sync bins: - health-sync ``` `SKILL.md:84-88`: ```bash npx health-sync sync ``` `references/setup.md:19-29`: ```text Bot-side commands: 1. `npx health-sync init remote bootstrap --expires-in 24h` 2. `npx health-sync init remote finish <bootstrap-ref> <archive-path>` 3. `npx health-sync providers --verbose` 4. `npx health-sync sync` 5. `npx health-sync status` User-side command: 1. `npx health-sync init --remote <bootstrap-token>` ``` `references/setup.md:79-83`: ```bash npx health-sync init remote bootstrap --expires-in 24h ``` `references/setup.md:113-124`: ```bash npx health-sync init remote finish <TOKEN_OR_KEY_ID_OR_SESSION_ID> /path/to/archive.enc ``` ```bash npx health-sync init remote finish <REF> /path/to/archive.enc \ --target-config /path/to/health-sync.toml \ --target-creds /path/to/.health-sync.creds ``` `references/setup.md:139-142`: ```bash npx health-sync providers --verbose npx health-sync sync npx health-sync status ``` ### Technical Analysis The Skill repeatedly executes the `health-sync` npm package without specifying an exact version or verifying an integrity hash. No lockfile, vendored implementation, package checksum, or package-signing policy is included in the audited project. When an unversioned package is invoked through `npx`, the resolved package can change independently of the reviewed Skill. This creates a supply-chain trust boundary: future registry releases or a compromised publisher account can cause code that was never audited to run under the privileges of the invoking user. The exposure is particularly significant because the package is instruc ...[truncated 2135 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the package to an exact reviewed version in every command, for example: ```bash npx --yes health-sync@1.2.3 sync ``` 2. Record and verify the expected npm package integrity digest before execution. 3. Include a lockfile and use a deterministic installation process such as `npm ci`. 4. Prefer a vendored or locally installed reviewed CLI over implicit registry resolution during each invocation. 5. Verify package ownership, provenance, and registry metadata. Enable npm provenance or equivalent signed-build verification where available. 6. Prevent lifecycle scripts unless they are explicitly required and audited. 7. Run the CLI in a sandbox with: - A dedicated unprivileged operating-system account. - Access only to the required health-sync workspace. - Restricted outbound network destinations. - No access to unrelated SSH keys, cloud credentials, environment secrets, or home-directory files. 8. Separate archive decryption and credential storage from the synchronization process where practical. 9. Document an upgrade review procedure so that package versions change only after source and dependency inspection. 10. Apply restrictive filesystem permissions to credential and database files and ensure backups inherit equivalent protections. ]]>
