Back to skill

Security audit

Cash Flow Forecast

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed QuickBooks cash-flow reporting workflow, but users should treat its financial outputs and local cache as sensitive.

Install and run this only in a trusted environment with authorized QBO access. Use a secure output directory instead of a shared or cloud-synced Desktop when handling client financials, protect the `.cache/cash-flow-forecast/` files, and prefer a pinned dependency 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:188
Finding
Unpinned Third-Party Python Dependency## Vulnerability Details **File Location**: `SKILL.md:188-192` **Vulnerability Type**: Unpinned dependency installation without integrity verification **Risk Level**: Medium ### Vulnerable Code ```markdown ## Dependencies ``` ```bash pip install openpyxl ``` ```text Node.js QBO client must be authenticated with a valid token. ``` ### Technical Analysis The documented installation command retrieves the currently available `openpyxl` release without specifying an approved version or validating an artifact hash. As a result, installations are not reproducible, and future package releases can introduce unexpected behavior into an environment that processes sensitive QBO-derived financial information. The instruction also does not require a lock file, a trusted package index, or hash verification. If the dependency distribution channel, package maintainer account, local package-index configuration, or network path were compromised, a modified package could be installed without detection. The referenced forecast script and authenticated Node.js QBO client are absent from the audited project, so their dependency handling and treatment of QBO credentials could not be verified. ### Attack Path 1. An attacker compromises a dependency release, package publishing account, configured Python package index, or package delivery path. 2. A user follows the documented `pip install openpyxl` instruction. 3. `pip` resolves and installs the unpinned, unverified artifact. 4. Malicious package installation or runtime code executes with the privileges of the user running the command. 5. If the forecast workflow is subsequently run in the same environment, the compromised component may access financial data, generated workbooks, local files available to that user, or credentials exposed to the process. ### Impact Assessment Successful exploitation would execute code with the privileges of the user performing the installation or running the forecast workflow. The potential s ...[truncated 473 chars]
Remediation
## Remediation Suggestions 1. Pin `openpyxl` to a reviewed, exact version in a dependency manifest: ```text openpyxl==REVIEWED_VERSION ``` 2. Generate and verify cryptographic hashes for all transitive dependencies: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Use a lock file produced by a dependency-management tool such as `pip-tools`, Poetry, or uv. 4. Explicitly configure the official trusted package index and prevent unintended fallback to private or untrusted indexes. 5. Install dependencies inside an isolated virtual environment using a non-privileged account. 6. Add automated dependency vulnerability and provenance checks to the release process. 7. Include the referenced forecast script and its dependency manifests in the reviewable package so its QBO credential handling, file operations, and transitive dependencies can be audited.
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
89% confidence
Finding
The skill clearly states it pulls live QBO data, writes Excel reports to the user's Desktop, and stores run-history in a local cache, but the description does not prominently warn users about handling potentially sensitive financial data or local persistence. This can lead to unintended disclosure of client financial information if operators run it in shared environments, sync Desktops to cloud storage, or assume the skill is read-only/ephemeral.

Static analysis

No suspicious patterns detected.