Back to skill

Security audit

Zillow Property Data API - For Sale, Rent, Sold, Price History

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Zillow/real-estate data helper that uses a disclosed Scavio API key and does not show hidden or destructive behavior.

Before installing optional SDKs, use a virtual environment or project-local install, keep SCAVIO_API_KEY scoped and rotatable, and consider using the direct HTTPS examples if you do not want to trust third-party package installation.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T08 · Insecure Dependencies

Note
Location
SKILL.md:220
Finding
Third-Party Python SDK Installed Without Artifact Integrity Verification## Vulnerability Details **File Location**: `SKILL.md:220` **Vulnerability Type**: Supply-chain exposure through an unverified third-party dependency **Risk Level**: Low ```bash pip install scavio==0.15.0 ``` ### Technical Analysis The skill instructs users or agents to install the `scavio` package from pip's configured package index. The dependency is pinned to version `0.15.0`, which reduces unintended version drift, but no package hash, trusted index URL, signature verification, or locked artifact is specified. A pip installation can execute package build logic when a source distribution must be built. The installed SDK is subsequently imported and given access to `SCAVIO_API_KEY`, creating a sensitive trust boundary. The audit found no evidence that the named package or version is currently malicious; this finding concerns the absence of artifact-level integrity controls. The transmission of `SCAVIO_API_KEY` to `https://api.scavio.dev` is consistent with the declared API functionality and does not, by itself, constitute unauthorized secret exfiltration. ### Attack Path 1. An attacker compromises the package publisher, package-index account, configured package index, or the specific published artifact. 2. The victim follows the documented `pip install scavio==0.15.0` instruction without verifying an expected cryptographic hash. 3. Malicious installation logic may run during package installation, or malicious SDK code runs when imported. 4. The compromised code executes with the privileges of the installing user. 5. When the SDK is used, it may access `SCAVIO_API_KEY`, request parameters, property searches, agent queries, API responses, and other data available to the process. ### Impact Assessment Exploitation could provide code execution with the current user's privileges. It could expose the Scavio API key and real-estate query data or modify API requests and responses. The instruction does not request elevated p ...[truncated 233 chars]
Remediation
## Remediation Suggestions - Prefer direct HTTPS API examples when an SDK is not necessary. - Publish a requirements or lock file containing cryptographic hashes for approved artifacts. - Use `pip install --require-hashes -r requirements.txt` with an exact package version and hashes for every transitive dependency. - Require installation from an explicitly trusted package index. - Verify package provenance and publisher ownership before approving updates. - Install the SDK in an isolated virtual environment under a nonprivileged account. - Ensure the API key is scoped, rotatable, and supplied only at runtime through the environment or a secret manager. - Review new SDK versions and dependency changes before updating the approved lock file.

T08 · Insecure Dependencies

Note
Location
SKILL.md:234
Finding
Third-Party npm SDK Installed Without Lockfile or Artifact Integrity Controls## Vulnerability Details **File Location**: `SKILL.md:234` **Vulnerability Type**: Supply-chain exposure through an unverified third-party dependency **Risk Level**: Low ```bash npm install scavio@0.15.0 ``` ### Technical Analysis The skill instructs users or agents to install the `scavio` npm package. Although the package version is pinned, the project does not provide a reviewed lockfile, integrity metadata, or controls over npm lifecycle scripts. npm packages and their transitive dependencies may run lifecycle scripts during installation. The installed SDK is then instantiated in a process that reads `SCAVIO_API_KEY`, so compromise of the package or distribution account could place the secret and process data at risk. The audit found no evidence that `scavio@0.15.0` is currently malicious; the issue is the lack of reproducible, integrity-verified dependency installation. ### Attack Path 1. An attacker compromises the npm publisher, registry account, configured registry, package artifact, or a transitive dependency. 2. The victim executes the documented `npm install scavio@0.15.0` command. 3. A malicious package may execute through an npm lifecycle script during installation or through imported SDK code at runtime. 4. The code runs with the privileges of the user executing npm or the application. 5. Runtime code may read `SCAVIO_API_KEY`, intercept search parameters and API responses, alter results, or transmit accessible process data. ### Impact Assessment A successful supply-chain compromise could result in user-level code execution, API-key disclosure, unauthorized consumption of paid API credits, and compromise of query or response data. The documented command does not require administrator privileges and contains no persistence mechanism. Actual exploitation requires compromise or substitution of an external package or dependency.
Remediation
## Remediation Suggestions - Commit a reviewed `package-lock.json` containing registry integrity metadata. - Use `npm ci` against the committed lockfile rather than an ad hoc `npm install`. - Consider `npm ci --ignore-scripts` when lifecycle scripts are not required. - Pin and review all transitive dependencies and monitor them for security advisories. - Configure an explicitly trusted npm registry and verify package publisher provenance. - Run installation and SDK execution in a sandbox or container under a nonprivileged account. - Scope and rotate `SCAVIO_API_KEY`, and expose it only to the process that needs it. - Review dependency and lockfile changes before accepting SDK upgrades.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:37