T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:232
- Finding
- Third-Party SDK Installation Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md`, lines 232-250 **Vulnerability Type**: Supply-chain exposure through unaudited third-party packages **Risk Level**: Medium ### Vulnerable Code ```bash pip install scavio==0.15.0 ``` ```python from scavio import ScavioClient client = ScavioClient() # reads SCAVIO_API_KEY hits = client.glassdoor.companies("Anthropic") employer_id = hits["data"]["results"][0]["employer_id"] company = client.glassdoor.company(employer_id=employer_id)["data"] reviews = client.glassdoor.reviews(url=company["reviews_url"], category="compensation") salaries = client.glassdoor.salaries(url=company["salaries_url"], page=1) ``` ```bash npm install scavio@0.15.0 ``` ### Technical Analysis The Skill instructs users or agents to download and install external Python and npm packages. Although both dependencies are pinned to version `0.15.0`, the project does not provide integrity hashes, lockfiles, package signatures, vendored source, or a verified source repository. The installed SDK implementations are also absent from the audited project, so their installation hooks, runtime behavior, network destinations, and credential handling cannot be independently reviewed. Version pinning limits unexpected upgrades but does not verify that registry content is authentic. If the package publisher, registry account, distribution infrastructure, or pinned release is compromised, package installation or subsequent SDK use could execute attacker-controlled code. This concern is particularly relevant because both SDK clients read `SCAVIO_API_KEY` from the environment. A compromised dependency executing in the same process could access that credential and other environment variables or files available to the invoking user. The separately documented transmission of `SCAVIO_API_KEY` to `https://api.scavio.dev` as an HTTPS bearer token is consistent with the declared API functionality and was not ...[truncated 1651 chars]
- Remediation
- ## Remediation Suggestions 1. Prefer the already documented direct HTTPS requests to `https://api.scavio.dev`, which avoid installing an additional SDK. 2. If SDK use remains supported, provide lockfiles and cryptographic integrity data for every direct and transitive dependency. 3. Document the authoritative package registry, publisher identity, source repository, and release-verification process. 4. Audit the exact SDK source corresponding to version `0.15.0`, including installation scripts, import-time behavior, network destinations, and credential handling. 5. Disable package installation scripts where supported and unnecessary, such as with npm's `--ignore-scripts`, after confirming the package functions correctly without them. 6. Install and run dependencies in an isolated, least-privileged environment with access only to `SCAVIO_API_KEY` and the network destinations required for the task. 7. Avoid exposing unrelated environment variables or user files to the SDK process. 8. Add dependency vulnerability, provenance, and checksum verification to the release process, and regularly review pinned versions for disclosed security issues.
