Back to skill

Security audit

Financial Analytics Pro

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to be a local financial reporting tool, but it advertises sensitive bank and account integrations and uses broad unpinned installs without enough scoping or privacy guidance.

Review carefully before installing. Use a dedicated virtual environment, avoid connecting live bank or brokerage accounts unless the publisher provides clear OAuth, token storage, retention, and revocation details, and treat generated reports/charts as confidential financial records. Prefer pinned dependencies or a lockfile and remove optional packages you do not need.

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:63
Finding
Unpinned and Unnecessarily Broad Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 63-66 **Vulnerability Type**: Unpinned and excessive third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash pip install pandas numpy matplotlib seaborn plotly scipy scikit-learn yfinance plaid-python python-dotenv ``` ### Technical Analysis The documented installation command retrieves packages without exact version constraints, package hashes, or a lockfile. Consequently, the code installed by users may change over time without any corresponding change to the reviewed Skill package. Several listed packages—`plotly`, `scipy`, `scikit-learn`, `yfinance`, `plaid-python`, and `python-dotenv`—are not imported by `scripts/financial_analyzer.py`. In addition, `numpy` and `seaborn` are imported but not used by the implementation. The unnecessary packages, particularly network-capable financial API clients such as `yfinance` and `plaid-python`, expand the dependency and transitive-dependency attack surface beyond the requirements of the supplied local financial analyzer. Package installation can execute package build or setup logic. If a direct or transitive dependency is compromised, an affected release could execute attacker-controlled code during installation or later import. No evidence shows that the named packages are currently malicious; the vulnerability is the mutable, unverified, and unnecessarily broad dependency installation process. ### Attack Path 1. A user follows the installation instructions in `SKILL.md`. 2. `pip` resolves the latest package versions and their transitive dependencies from the configured package index. 3. A direct or transitive dependency has been compromised, maliciously replaced, or publishes a newly unsafe release. 4. The malicious package executes attacker-controlled build, installation, or import-time code. 5. The payload runs with the privileges of the user performing the installation and can access resource ...[truncated 628 chars]
Remediation
## Remediation Suggestions 1. Create a minimal dependency manifest containing only libraries required by `scripts/financial_analyzer.py`. 2. Remove unused dependencies and imports. Keep optional API integrations in separately documented extras rather than installing them by default. 3. Pin every direct and transitive dependency to a reviewed version. 4. Generate and verify cryptographic hashes for all distributions, then install with a command such as: ```bash pip install --require-hashes -r requirements.txt ``` 5. Use a reproducible lockfile generated by an established dependency-management tool. 6. Recommend installation inside a dedicated virtual environment without administrator privileges. 7. Add automated dependency vulnerability scanning and scheduled review of pinned versions. 8. Configure trusted package indexes explicitly where appropriate and prevent fallback to unreviewed package sources.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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 (5)

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill markets integrations with bank, accounting, and investment data sources but provides no privacy, data handling, or consent guidance despite clearly targeting highly sensitive financial information. In this context, omission of warnings can lead users to expose transaction histories, balances, tax-relevant records, and business financials without understanding storage, sharing, or retention risks.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
Advertising Plaid, Yodlee, or direct bank API connections without warning about credential handling, OAuth/token use, third-party sharing, and account consent is dangerous because users may connect live financial accounts without understanding the trust boundary. If implemented insecurely or misunderstood, this can expose account data, tokens, and broad transaction access to external aggregators or the skill operator.

Missing User Warnings

Low
Confidence
88% confidence
Finding
Exporting reports to PDF, Excel, HTML, or PowerPoint without warning that outputs may contain sensitive financial data increases the risk of accidental disclosure through insecure storage, email sharing, cloud sync, or misdirected attachments. The skill context makes this more concerning because the generated artifacts likely consolidate business, banking, and investment information into easily shareable files.

Missing User Warnings

Low
Confidence
86% confidence
Finding
This code performs a file write when `output_file` is provided, creating or overwriting a JSON report on disk. Although it prints after saving, there is no prior confirmation prompt or explicit warning comment/docstring that the operation modifies the filesystem.

Missing User Warnings

Low
Confidence
83% confidence
Finding
The visualization routine writes PNG output files to the specified directory, which affects the user's filesystem. The function logs success after saving, but it does not provide an advance disclosure or confirmation that image files will be created.

Static analysis

No suspicious patterns detected.