T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:225
- Finding
- Unverified Third-Party SDK Installation Introduces Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 225-249 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash pip install scavio==0.15.0 ``` ```python from scavio import ScavioClient client = ScavioClient() # reads SCAVIO_API_KEY found = client.indeed.search(query="data engineer", location="Austin, TX", radius=25) job = client.indeed.job(found["data"]["jobs"][0]["job_key"]) company = client.indeed.company(job["data"]["company_slug"]) reviews = client.indeed.company_reviews(job["data"]["company_slug"], page=1) ``` ```bash npm install scavio@0.15.0 ``` ```javascript import { Scavio } from "scavio"; const client = new Scavio(); // reads SCAVIO_API_KEY const found = await client.indeed.search({ query: "data engineer", location: "Austin, TX", radius: 25 }); const reviews = await client.indeed.companyReviews({ company: "example-corp", page: 1 }); ``` ### Technical Analysis The Skill recommends installing executable third-party Python and npm packages directly from public package registries. Both packages are version-pinned, which limits unexpected version drift, but the instructions do not provide cryptographic hashes, lockfiles, signatures, verified publisher information, or other integrity controls. Package installation can execute package-controlled build or lifecycle logic. Imported SDK code subsequently runs in the agent process and explicitly reads `SCAVIO_API_KEY`. Consequently, a compromised publisher account, malicious replacement of the referenced release, registry compromise, or transitive dependency compromise could expose the API key and any other data available to the installation or runtime process. No evidence was found that the referenced `scavio` packages are currently malicious. The finding concerns the unverified supply-chain trust introduced by the documented installation procedure. The dependency is also not strictl ...[truncated 1845 chars]
- Remediation
- ## Remediation Suggestions 1. Prefer the already documented direct HTTPS workflow, which avoids introducing executable SDK dependencies. 2. If the SDKs remain supported, publish and verify cryptographic integrity information for the exact package artifacts. 3. Provide reproducible lockfiles that pin all transitive dependencies, not only the top-level SDK version. 4. Document the packages' verified registry publisher identities and link to their reviewed source repositories and release provenance. 5. Use package-manager integrity controls and signature or provenance verification where available. 6. Install dependencies in an isolated virtual environment or container under a non-privileged account. 7. Expose only `SCAVIO_API_KEY` to the runtime and avoid making unrelated credentials or sensitive environment variables available. 8. Disable unnecessary installation scripts where compatible, and audit package lifecycle hooks before use. 9. Apply outbound network restrictions so the SDK can communicate only with the documented Scavio API endpoint. 10. Rotate `SCAVIO_API_KEY` and review account usage if package or environment compromise is suspected.
