Back to skill

Security audit

Redfin Property Data API - For Sale, Sold, Rentals, Price History

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent, read-only Redfin property-data helper that discloses its Scavio API key requirement and expected API-credit use.

Install only if you are comfortable giving Scavio API access for Redfin-related queries and spending the disclosed API credits. Prefer the direct HTTPS examples or install the optional SDKs in an isolated environment, and keep SCAVIO_API_KEY limited to this use rather than exposing unrelated secrets.

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 (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:218
Finding
Unverified Third-Party SDK Installation Creates Supply-Chain Exposure<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:218-241` **Vulnerability Type**: Third-party dependency installation without integrity verification **Risk Level**: Medium ### Complete Code Snippet ```bash pip install scavio==0.15.0 ``` ```python from scavio import ScavioClient client = ScavioClient() # reads SCAVIO_API_KEY listings = client.redfin.search(location="78704", listing_status="for_sale", beds_min=3, max_price=800000, limit=350) prop = client.redfin.property("https://www.redfin.com/TX/Austin/...") market = client.redfin.market(region_id=30749, region_type=6) ``` ```bash npm install scavio@0.15.0 ``` ```js import { Scavio } from "scavio"; const scavio = new Scavio(); // reads SCAVIO_API_KEY const listings = await scavio.redfin.search({ location: "78704", listing_status: "sold", sold_within_days: 30 }); ``` ### Technical Analysis The Skill instructs users or agents to install executable packages from public Python and npm registries. Pinning both SDKs to version `0.15.0` limits unintended version changes, but the instructions provide no lockfile, cryptographic hash, integrity metadata, verified source reference, or review of transitive dependencies. Package installation and subsequent import can execute code supplied by the package or its dependency chain. The examples explicitly initialize the SDKs in a process containing `SCAVIO_API_KEY`, placing that credential within reach of dependency code. The audited project contains no copy of either SDK's source, so their behavior and dependency trees could not be verified as part of this audit. This finding establishes an unsafe supply-chain trust path; it does not establish that the named packages are currently malicious. ### Attack Path 1. An attacker compromises the relevant registry account, package release process, distribution infrastructure, or a transitive dependency. 2. The victim follows `SK ...[truncated 1362 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Prefer the documented direct HTTPS API workflow, which does not require installing either SDK. 2. Publish and verify official source repositories, package ownership, release-signing information, and build provenance for both packages. 3. For Python, provide a hash-locked requirements file and require hash verification, for example with `pip install --require-hashes`. 4. For Node.js, provide a committed lockfile with integrity records and use `npm ci` rather than an unconstrained install workflow. 5. Audit and pin all transitive dependencies, not only the top-level SDK version. 6. Install dependencies in an isolated virtual environment or container under a non-privileged account. 7. Avoid exposing unrelated credentials or sensitive environment variables to the SDK process. Supply only `SCAVIO_API_KEY` when it is required. 8. Disable or review package installation scripts where operationally feasible, and continuously scan installed packages for known vulnerabilities and unexpected ownership changes. 9. Rotate `SCAVIO_API_KEY` promptly if dependency compromise is suspected, and monitor the account for unexplained credit consumption. ]]>
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:36