T08 · Insecure Dependencies
Error
- Location
- SKILL.md:86
- Finding
- Unnecessary Third-Party Package Retrieval and Execution Through npx## Vulnerability Details **File Location**: `SKILL.md`, lines 86–90 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: High ### Vulnerable Code ```markdown **Fetch with the CLI instead, if the host can run `npx`.** The official SentiSense CLI ships inside the `sentisense` npm package, so there is nothing to install; `options {T}` prints the per-stock dossier from workflow 2 (options sentiment, IV rank, put/call, ATM IV and skew, volumes and open interest, the walls and max pain, and the unusually active contracts), and it works for the covered ETFs. Add `--json` for the exact `/options/summary` response, envelope included, so every field path below reads the same whichever way you fetched. Set `SENTISENSE_SKILL=unusual-options-activity` and the CLI stamps the `User-Agent` identity described under workflow 1 for you. The radar board (`/options/overview`) and the history series have no CLI command yet, so those two workflows stay REST. The version is pinned deliberately: a pinned version runs reviewed, immutable code. For the complete command set, install the `sentisense-cli` skill. ```bash npx -y sentisense@0.52.0 options NVDA npx -y sentisense@0.52.0 options SPY --json ``` ``` ### Technical Analysis The Skill recommends `npx -y`, which may retrieve the specified npm package and its transitive dependencies from an external registry and immediately execute them on the local host. The `-y` option suppresses the normal confirmation prompt. Pinning the top-level package to version `0.52.0` improves reproducibility but does not independently verify package integrity. The Skill supplies no cryptographic digest, signature, vendored source, audited lockfile, or verification procedure for the downloaded artifact and its dependency tree. A pinned package can still be dangerous if the corresponding registry artifact, publisher account, build pipeline, or transitive dependency was compromised before or during publication. ...[truncated 2633 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the `npx` workflow and use the already documented `curl` or Python standard-library HTTPS implementation. This is the safest and most privilege-minimizing option. 2. If CLI support is essential, vendor the reviewed CLI source and its required dependencies within a controlled release process rather than downloading executable code at invocation time. 3. Publish and verify cryptographic hashes or signed provenance for every approved artifact. Do not rely on a version number alone as an integrity control. 4. Lock and audit the full transitive dependency graph. Generate a software bill of materials and continuously scan dependencies for known vulnerabilities or unexpected ownership changes. 5. Prevent package lifecycle scripts where possible, such as by installing with `--ignore-scripts`, while recognizing that this does not make the CLI's runtime code trustworthy. 6. Replace `npx -y` with an explicit, administrator-reviewed installation or execution process. Avoid suppressing security-relevant confirmation prompts. 7. Run any unavoidable third-party CLI in a sandbox or container with: - A read-only filesystem where practical. - No access to unrelated home-directory files. - No inherited credentials other than the narrowly required API key. - Restricted outbound network access limited to the declared API endpoint. - No elevated operating-system privileges. 8. Prefer a short-lived, narrowly scoped API credential and rotate it if third-party package execution has occurred in an environment where compromise is suspected.
