Back to skill

Security audit

Tmp.Vhc8CftFa4

Security checks for vulnerabilities and agentic risk

Overview

The skill is read-only and purpose-aligned, but its setup runs unpinned third-party code and a browser extension against a signed-in Redfin session.

Review before installing. Prefer pinning the npm package and fetchproxy repository to reviewed versions or commits, and use this only in an environment where you are comfortable exposing your signed-in Redfin saved homes/searches to the MCP server and browser extension path.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:19
Finding

Unpinned Third-Party Code Retrieval and Execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 19-38
Vulnerability Type: Mutable remote dependencies executed without version or commit pinning
Risk Level: High

Vulnerable Code

markdown
`.mcp.json` (project) or `~/.claude/mcp.json` (global):

```json
{
  "mcpServers": {
    "redfin": {
      "command": "npx",
      "args": ["-y", "redfin-mcp"]
    }
  }
}

2. Install the fetchproxy extension (one-time, shared across all fetchproxy-based MCPs)

bash
git clone https://github.com/chrischall/fetchproxy
cd fetchproxy
npm ci
npm --workspace=@fetchproxy/extension-chrome run build
text

### Technical Analysis

The MCP configuration invokes `npx -y redfin-mcp` without specifying an exact package version. Consequently, npm can download and execute whichever version is associated with the package's current distribution tag when the MCP server starts. The `-y` option suppresses the normal installation confirmation, reducing the opportunity for user review.

The browser extension installation similarly clones the default branch of a remote Git repository without pinning a reviewed commit or release tag. Its npm lifecycle and build commands then process remotely controlled repository content. The effective code installed by these instructions can therefore change after the Skill itself has been audited.

This is a supply-chain weakness rather than evidence that the currently referenced projects are malicious. Exploitation requires compromise or malicious modification of an upstream npm package, Git repository, maintainer account, or publication process.

The reference to `.mcp.json` and `~/.claude/mcp.json` is a configuration instruction, not evidence that the Skill reads or extracts credentials. No hardcoded secret or unrelated credential access was identified. However, the configured MCP process executes under the user's account, while the extension is intended to interac
...[truncated 1955 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin redfin-mcp to an exact reviewed version, for example:

    json
    {
      "mcpServers": {
        "redfin": {
          "command": "npx",
          "args": ["--no-install", "redfin-mcp@<reviewed-exact-version>"]
        }
      }
    }
    

    Install the pinned version separately from a trusted registry rather than allowing automatic retrieval whenever the MCP starts.

  2. Remove -y so installation or unexpected retrieval cannot proceed without confirmation.

  3. Pin the extension repository to a reviewed full commit hash:

    bash
    git clone https://github.com/chrischall/fetchproxy
    cd fetchproxy
    git checkout --detach <reviewed-full-commit-hash>
    npm ci --ignore-scripts
    npm --workspace=@fetchproxy/extension-chrome run build
    
  4. Verify release signatures, package integrity hashes, repository ownership, and the selected commit before installation. Publish known-good hashes in the Skill documentation.

  5. Audit npm lifecycle scripts and transitive dependencies before permitting scripts to run. If lifecycle scripts are required, execute them only after review and in a sandboxed build environment.

  6. Document and minimize the browser extension's host and API permissions. Restrict access to Redfin domains and only the capabilities necessary to proxy the declared read-only requests.

  7. Run the MCP process under a dedicated, minimally privileged account or container without access to unrelated files, credentials, environment variables, or network destinations.

  8. Establish an explicit update process in which new package versions and extension commits are reviewed before changing the pinned references.

Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (3)

MCP Config Access

High
Category
Agent Snooping
Confidence
95% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · SKILL.md (reported line 19)May include surrounding context.

1. Install redfin-mcp

.mcp.json (project) or ~/.claude/mcp.json (global):

json
{

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest description uses broad trigger phrases like "any request involving Redfin properties, prices, or your saved Redfin activity," which can cause the skill to activate for loosely related user requests. Because this skill can access signed-in Redfin data, overbroad routing increases the chance of unintentionally invoking tools that expose private saved homes or searches when the user did not clearly intend that access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill advertises access to "your saved homes/searches" in the triggerable description without an explicit privacy warning or consent boundary. In a shared assistant context, this can lead to unintentional retrieval of sensitive account-linked behavioral data, especially if activation occurs from ambiguous prompts or other users with access to the same assistant environment.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.