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.pyscript executes system commands to open the constructed FinViz URL in the user's browser. It usessubprocess.runto call tools likeopen(macOS),google-chrome,chromium-browser, orxdg-open(Linux). - Evidence: Found in
scripts/open_finviz_screener.pywithin theopen_browserfunction. - 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_KEYenvironment 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