Back to skill

Security audit

Housesigma Collector

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for collecting HouseSigma property data, but it directs automated database writes and git pushes with limited safety guidance.

Review this skill before installing if the Hauscout database contains private, licensed, proprietary, or personal data. Use a pinned local tsx dependency or npm script, confirm the target database path, keep backups, validate collected fields before writes, and do not enable cron or git push unless you are comfortable publishing the database to the configured remote repository.

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:14
Finding
Unpinned npx Package Execution May Introduce Supply-Chain Code Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 14-29 **Vulnerability Type**: Unpinned third-party package execution through `npx` **Risk Level**: Medium ### Vulnerable Code ```bash cd /Users/kendrick/projects/hauscout && npx tsx scripts/collect.ts ``` ```bash cd /Users/kendrick/projects/hauscout && npx tsx scripts/collect.ts --url "<housesigma_url>" ``` ```bash cd /Users/kendrick/projects/hauscout && npx tsx scripts/collect.ts --profile <id> ``` ```bash cd /Users/kendrick/projects/hauscout && npx tsx scripts/collect.ts --headed ``` ### Technical Analysis The documented commands execute `tsx` through `npx` without specifying a package version or using `--no-install`. If a trusted, locally installed `tsx` binary is unavailable, `npx` may resolve, download, and execute package content from the configured package registry. The referenced Hauscout project and its dependency metadata are outside the audited artifact, which contains only `SKILL.md`. Consequently, the audit could not verify that `tsx` is pinned by a lockfile, installed from a trusted registry, or protected by integrity controls. Package initialization or runtime code executes with the privileges of the user running the Skill. This is a supply-chain weakness rather than evidence that the current `tsx` package is malicious. Exploitation requires the resolved dependency or configured registry to be compromised, substituted, or otherwise attacker-controlled. ### Attack Path 1. An agent or user follows one of the documented collection commands. 2. `npx` searches for a locally installed `tsx` executable. 3. If the executable is unavailable, `npx` resolves the unpinned package through the configured registry. 4. An attacker who has compromised the package, registry, dependency-resolution path, or local package configuration supplies malicious package content. 5. `npx` downloads and executes ...[truncated 984 chars]
Remediation
## Remediation Suggestions 1. Add `tsx` as an explicit development dependency in the Hauscout project and pin it through a committed lockfile. 2. Install dependencies using a lockfile-enforcing command such as: ```bash npm ci ``` 3. Prevent `npx` from downloading missing packages at execution time: ```bash npx --no-install tsx scripts/collect.ts ``` 4. Prefer a lockfile-backed package script, for example: ```json { "scripts": { "collect": "tsx scripts/collect.ts" } } ``` Then invoke it with: ```bash npm run collect ``` 5. Configure an approved package registry and retain package-integrity metadata in the lockfile. 6. Run dependency auditing and update review processes before accepting new versions. 7. Execute collection under a least-privileged account with only the filesystem, database, network, and repository permissions required for the task. 8. Avoid exposing unrelated secrets or broadly privileged Git credentials to the collection process.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The skill instructs use of `npx tsx` without pinning an exact package version, which can cause execution of whatever version resolves at runtime. In a security-sensitive automation context, this creates supply-chain risk because a compromised or incompatible upstream package could be fetched and executed unexpectedly.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
This invocation again relies on unpinned `npx tsx`, which may download and execute a non-deterministic package version at runtime. If the package registry or dependency chain is compromised, the collector workflow could execute attacker-controlled code on the local machine.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
Using `npx tsx` without version pinning introduces a repeatable supply-chain exposure wherever users follow the command. Because this skill is intended to access local project data and databases, arbitrary code execution through a poisoned package would have meaningful local impact.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The same unpinned `npx tsx` pattern appears in the headed debugging command, preserving the same risk of executing an unexpected package version. Since this is presented as normal usage, users may run it directly without realizing they are trusting live package resolution.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The skill explicitly instructs direct SQLite insertion and automated database updates without warning the operator that local persistent data will be modified. In agent or semi-automated use, this can lead to unintended corruption, overwrites, or insertion of malformed/sensitive data into the local project database.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill directs users to `git add`, `commit`, and `push` the database file, which can upload collected data to a remote repository without any warning about data sensitivity or repository visibility. If the database contains proprietary, licensed, personal, or otherwise sensitive scraped data, this could cause unintended disclosure and downstream compliance issues.

Natural-Language Policy Violations

Low
Confidence
82% confidence
Finding
The operational instructions are entirely presented in Korean, which can function as an implicit language requirement for users of the skill. Under the policy, language constraints should either provide user choice or be explicitly justified as region- or audience-specific.

Static analysis

No suspicious patterns detected.