T08 · Insecure Dependencies
- Location
SKILL.md:220- Finding
Unaudited Third-Party SDKs Can Access the API Credential
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:220-240
Vulnerability Type: Third-party dependency and supply-chain exposure
Risk Level: MediumThe Skill recommends installing and executing Scavio SDK packages from both the Python Package Index and the npm registry:
bash pip install scavio==0.15.0python from scavio import ScavioClient client = ScavioClient() # reads SCAVIO_API_KEY listings = client.zillow.search("Austin, TX", listing_status="for_sale", beds_min=3) prop = client.zillow.property(listings["data"]["properties"][0]["zpid"]) agent = client.zillow.agent_reviews("jane-smith")bash npm install scavio@0.15.0javascript import { Scavio } from "scavio"; const client = new Scavio(); // reads SCAVIO_API_KEY const listings = await client.zillow.search({ location: "Austin, TX", listing_status: "for_rent", max_price: 2500 }); const agent = await client.zillow.agentReviews({ screen_name: "jane-smith" });Technical Analysis
The package contents are not included in the audited project, so their installation hooks and runtime behavior cannot be verified from the Skill package. Both SDKs are explicitly allowed to read
SCAVIO_API_KEY. Consequently, any malicious or compromised code in the selected package versions would execute within the user's process and could access that credential.Pinning the packages to version
0.15.0reduces unintended version drift but does not provide cryptographic integrity verification. The instructions do not specify package hashes, npm integrity values, provenance verification, install-script restrictions, or sandboxing.The direct HTTPS examples elsewhere in
SKILL.mdsend the bearer credential only to the declaredhttps://api.scavio.devservice. That network flow is disclosed and necessary for the Skill's functionality; no unrelated credential-exfiltration destination was identified in the audited file. The risk ide ...[truncated 1545 chars]- Remediation
View remediation
Remediation Suggestions
- Prefer the documented direct HTTPS API calls, which avoid executing additional SDK code.
- If the SDKs are retained, verify package ownership, release provenance, and source repositories before recommending installation.
- Provide lockfiles with cryptographic hashes or integrity metadata and require hash-verified installation.
- Audit the exact package versions and all transitive dependencies before deployment.
- Disable package installation scripts where practical, such as with npm's
--ignore-scripts, after confirming that the package does not legitimately require them. - Install and execute dependencies in an isolated, unprivileged environment with access only to the required API credential and network destination.
- Use a narrowly scoped, revocable API key with spending or usage limits, and rotate it immediately if dependency compromise is suspected.
- Restrict outbound traffic so the runtime can communicate only with the documented Scavio API endpoint.
