finviz-screener

Pass

Audited by Gen Agent Trust Hub on Oct 6, 2026

Risk Level: SAFECOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
  • [COMMAND_EXECUTION]: The scripts/open_finviz_screener.py script executes system commands to open the constructed FinViz URL in the user's browser. It uses subprocess.run to call tools like open (macOS), google-chrome, chromium-browser, or xdg-open (Linux).
  • Evidence: Found in scripts/open_finviz_screener.py within the open_browser function.
  • Mitigation: The script uses argument lists instead of shell strings, preventing shell injection. Furthermore, all dynamic parts of the URL (filters, themes, and sort orders) are strictly validated against character whitelists using regular expressions before being included in the command.
  • [INDIRECT_PROMPT_INJECTION]: The skill processes user-supplied natural language to generate stock filters, which is a potential surface for indirect prompt injection.
  • Ingestion points: Natural language user requests for stock screening (e.g., "Find high dividend stocks").
  • Boundary markers: The skill instructions (Step 3 in SKILL.md) mandate that the agent presents the selected filters in a table for user confirmation before proceeding to execution.
  • Capability inventory: The skill can open URLs in a local browser via subprocess.run.
  • Sanitization: The Python execution script performs strict regex validation (^[a-z0-9_.-]+$) on all filter and theme tokens and URL-encodes them to ensure no malicious parameters can be injected into the final URL.
  • [SAFE]: The skill uses the FINVIZ_API_KEY environment variable to automatically detect and enable FinViz Elite features. This is a standard and safe practice for secret management, and the skill does not hardcode or exfiltrate the key.
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 6, 2026, 07:50 AM