Back to skill

Security audit

property-developer-research

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent public-source Indonesian property due-diligence workflow, with disclosed browser, reporting, and artifact-generation behavior but some dependency and sharing cautions.

Install in a dedicated sandbox or virtual environment if possible, avoid running setup as an administrator, and review generated PDFs/ZIPs before sharing them in Telegram or group chats because they may bundle screenshots, addresses, coordinates, and registration details.

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:10
Finding

Unpinned Third-Party Dependency Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 10–22 and 48–59
Vulnerability Type: Unpinned npm and PyPI dependencies installed from mutable upstream sources
Risk Level: Medium

Vulnerable Code

yaml
"requires": { "bins": ["python3", "node", "npm", "npx"] },
"install":
  [
    {
      "id": "playwright-npm",
      "kind": "exec",
      "command": "npm install -g playwright && npx playwright install chromium",
      "label": "Install Playwright + Chromium for browser evidence capture"
    },
    {
      "id": "python-reporting-deps",
      "kind": "exec",
      "command": "python3 -m pip install --user requests beautifulsoup4 lxml pillow reportlab weasyprint pypdf",
      "label": "Install Python scraping/reporting dependencies"
    }
  ]

The installation instructions are repeated in the skill body:

bash
npm install -g playwright
npx playwright install chromium
bash
python3 -m pip install --user requests beautifulsoup4 lxml pillow reportlab weasyprint pypdf

Technical Analysis

The skill installs Playwright, Chromium, and several Python packages without exact version constraints, lockfiles, package hashes, or artifact-integrity checks. Consequently, the content installed during one execution may differ from the content reviewed or installed during another execution.

The npm command also performs a global installation. This broadens the affected environment compared with a project-local installation and may alter a shared executable resolution path. The Python command installs packages into the invoking user's package directory, where they can subsequently be imported by other user-level Python applications.

Although the audited file contains no malicious package names or embedded malicious code, this installation pattern creates a supply-chain exposure. A compromised upstream release, transitive dependency, package-maintainer account, or registry response could introduce attacker-controlled code. Package i ...[truncated 1642 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin every direct dependency to an exact reviewed version. Avoid floating versions and broad version ranges.
  2. Replace the global Playwright installation with a project-local dependency managed through a committed package-lock.json or equivalent lockfile:
    bash
    npm ci
    npx playwright install chromium
    
  3. Configure npm to require lockfile integrity and use an approved registry. Review lockfile changes before installation.
  4. Install Python dependencies in a dedicated virtual environment rather than the user's shared package directory.
  5. Maintain a fully resolved, hash-locked requirements file and require hash verification:
    bash
    python3 -m venv .venv
    .venv/bin/python -m pip install --require-hashes -r requirements.txt
    
  6. Pin the Playwright-managed Chromium revision through the reviewed Playwright version and verify downloaded browser artifacts using trusted checksums or controlled mirrors where operationally possible.
  7. Disable or tightly control package installation scripts where compatible with the dependencies, and perform installation in a sandboxed environment with minimal filesystem, network, and credential access.
  8. Add automated dependency scanning, provenance verification, and periodic review of direct and transitive dependencies.
  9. Avoid running setup commands as root or with elevated privileges.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The skill installs and invokes Playwright via npm/npx without pinning a specific version, so future runs may fetch whatever package version is current at execution time. That creates a supply-chain and reproducibility risk: a compromised upstream release or breaking change could alter behavior or execute unintended code during install/use.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

This prerequisite check relies on unqualified 'npx playwright', which may resolve to the latest available version or trigger package retrieval if absent. In an agent skill that may auto-install dependencies, that increases exposure to unreviewed upstream code and makes executions non-deterministic.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The setup instructions explicitly install Playwright and Chromium using floating package references, which means the agent may execute arbitrary lifecycle scripts from whatever version npm serves at the time. Because this skill is meant to browse untrusted sites and automate evidence capture, deterministic and reviewed tooling versions are especially important.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The skill defaults to creating PDFs and evidence ZIPs and sending them over Telegram/group chat without requiring an explicit user confirmation or warning about retention and transmission of collected data. Even if the sources are public, the compiled dossier may contain names, addresses, coordinates, registration details, and screenshots that increase privacy, confidentiality, and accidental-sharing risk once packaged and transmitted.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.