comparable-company-analysis

Fail

Audited by Snyk on Jun 15, 2026

Risk Level: HIGH
Full Analysis

MEDIUM W011: Third-party content exposure detected (indirect prompt injection risk).

  • Third-party content exposure detected (medium risk: 0.65). RUNTIME path: scripts/excel_theme.py calls fetch_comparable_company_data(query)scripts/get_data.py performs a POST to https://ai-saas.eastmoney.com/.../comparable-company-analysis, then the returned JSON fields (header, section_finance, section_valuation, records) are converted to strings and written into the Excel; if the agent later reads/uses this text for LLM answering, it originates from an outsider-authored API response (public third-party service content).

HIGH W008: Secret detected in skill content (API keys, tokens, passwords).

  • Secret detected (high risk: 1.00). I inspected both scripts. The file scripts/get_data.py contains a hardcoded, high-entropy default API key assigned to EM_API_KEY:
  • Location: scripts/get_data.py
  • Code: EM_API_KEY = os.environ.get("EM_API_KEY", "em_fjFqd4YB6Cqs52LF48XWbMDdLNq6MyNg").strip()

Reason for flagging:

  • The default value is a non-placeholder, random-looking string (high entropy) that functions as an API key fallback and is sent in request headers ("em_api_key": EM_API_KEY). This makes it a usable credential if left in the code or if the environment variable is not set.
  • It is not a documented placeholder or simple setup password, so it should be treated as a secret and removed/rotated.

No other values in the repository appear to be secrets:

  • URLs, environment variable names, formatting strings, and example commands are documentation or config and are ignored per the rules.

Issues (2)

W011
MEDIUM

Third-party content exposure detected (indirect prompt injection risk).

W008
HIGH

Secret detected in skill content (API keys, tokens, passwords).

Audit Metadata
Risk Level
HIGH
Analyzed
Jun 15, 2026, 01:47 AM
Issues
2
Security Audit — snyk — comparable-company-analysis