Back to skill

Security audit

SCF Quick Compare

Security checks for vulnerabilities and agentic risk

Overview

This skill is a purpose-aligned QuickBooks cash-flow analysis helper, but users should handle its Excel outputs and local cache as sensitive financial data.

Install and run this only in an environment appropriate for client financial data. Treat generated workbooks and `.cache/scf-quick-compare/{slug}.json` as confidential, avoid shared or synced locations unless approved, and prefer a pinned dependency or managed Python environment for `openpyxl`.

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:55
Finding
Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, line 55 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Vulnerable Snippet**: ```markdown ## Requirements - `pip install openpyxl` (already installed in workspace) - Node.js QBO client with valid auth token - QBO credentials configured ``` ### Technical Analysis The skill directs users or an executing agent to install `openpyxl` without specifying an exact version, validating package hashes, using a lockfile, or constraining the package source to a trusted repository. The package artifact resolved by this command is mutable and depends on the active `pip` configuration and package-index environment. If the configured index, selected release, package account, or transitive dependency is compromised, following this instruction could install attacker-controlled code. Python packages may execute code during installation through build backends and can execute additional code when imported by the referenced workflow. Although the document states that the package is already installed, it still presents the unpinned installation command as a requirement. The audited project contains no dependency manifest or integrity data that would permit verification of the intended artifact. ### Attack Path 1. An attacker compromises a relevant package release, dependency, package-index account, or package source configured in the victim's environment. 2. A user or AI agent follows the documented `pip install openpyxl` instruction. 3. `pip` resolves and downloads an unverified package artifact because no exact version or cryptographic hash is required. 4. Attacker-controlled code executes during package build or installation, or when the dependency is subsequently imported. 5. The malicious code operates with the privileges of the user running `pip` or the analysis pipeline and can access resources available to that account. ### Impact As ...[truncated 612 chars]
Remediation
## Remediation Suggestions 1. Pin `openpyxl` to a reviewed, exact version rather than allowing mutable latest-version resolution. 2. Store dependencies in a committed requirements or lock file with cryptographic hashes, for example: ```text openpyxl==<reviewed-version> --hash=sha256:<verified-artifact-hash> ``` 3. Install with hash enforcement: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 4. Explicitly use an approved package index and ensure that untrusted supplemental indexes cannot take precedence. 5. Perform installation in a dedicated virtual environment or similarly isolated runtime under a non-privileged account. 6. Review and lock transitive dependencies as well as the direct dependency. 7. Include the referenced implementation and its dependency manifest in the reviewed package so that imports and runtime behavior can be verified together.
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
Findings (1)

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill explicitly operates on live QuickBooks Online financial data and documents a local CDC cache at `.cache/scf-quick-compare/{slug}.json`, but the description and requirements do not clearly warn users about handling sensitive financial data or persistence of snapshots on disk. This can lead to unintentional exposure of client financial information, especially on shared workstations, synced desktops, or unmanaged environments where users may not realize reports and cache artifacts are retained locally.

Static analysis

No suspicious patterns detected.