T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:211
- Finding
- Third-Party SDK Installation Without Artifact Integrity Verification## Vulnerability Details **File Location**: `SKILL.md:211-225` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium The Skill recommends installing third-party Python and npm packages directly from public package registries: ```bash pip install scavio==0.15.0 ``` ```python from scavio import ScavioClient client = ScavioClient() # reads SCAVIO_API_KEY ``` ```bash npm install scavio@0.15.0 ``` ### Technical Analysis The dependencies are pinned to version `0.15.0`, which reduces unintended version drift but does not authenticate the downloaded artifacts. The Skill provides no cryptographic hashes, lockfiles, package provenance checks, or reviewed source artifacts. Package installation and subsequent import may execute package-controlled installation hooks, build logic, initialization code, or runtime logic. Because the SDK is explicitly expected to read `SCAVIO_API_KEY`, compromised package code would execute in a context where that credential may be available. This is a supply-chain exposure rather than evidence that the named packages are currently malicious. Exploitation requires compromise, replacement, or malicious publication of the relevant registry artifact or its dependency chain. ### Attack Path 1. An attacker compromises a referenced registry package, maintainer account, release artifact, or transitive dependency. 2. A user follows the Skill instructions and runs `pip install scavio==0.15.0` or `npm install scavio@0.15.0`. 3. The package manager downloads the unverified artifact from the public registry. 4. Package installation hooks or later imported runtime code execute with the user's privileges. 5. Malicious code accesses environment variables such as `SCAVIO_API_KEY` and may access other resources available to that user. 6. The compromised code may disclose credentials or perform unauthorized actions within the permissions of the installation/runtime environment. ...[truncated 684 chars]
- Remediation
- ## Remediation Suggestions 1. Prefer the documented direct HTTPS requests when SDK functionality is not required, reducing dependency and installation exposure. 2. Provide lockfiles that capture the complete transitive dependency graph. 3. Verify package artifacts using cryptographic hashes, such as pip requirements with `--require-hashes`, and use npm lockfiles with integrity metadata. 4. Verify package publisher identity, registry provenance, signatures, and release history before installation. 5. Audit the pinned package and its transitive dependencies before recommending them. 6. Disable package lifecycle scripts where feasible and compatible, such as npm installation with `--ignore-scripts`. 7. Install and execute dependencies in a least-privileged, isolated virtual environment or container. 8. Expose only `SCAVIO_API_KEY` to the runtime that needs it, and avoid making unrelated credentials or sensitive host files available. 9. Never install these dependencies as root or in a privileged host environment. 10. Document credential rotation and revocation procedures in case package compromise is suspected.
