Back to skill

Security audit

alphaear-reporter

Security checks for vulnerabilities and agentic risk

Overview

This finance report skill is under-disclosed: it includes broad network access, local storage, generated HTML, and model-loading utilities beyond its simple report-and-chart description.

Review before installing. Use this only if you are comfortable with a finance-reporting skill that can call external news/search/model services, read API keys from environment variables, write local cache/log/output files, and render HTML. Do not pass sensitive or signed URLs to it, do not place untrusted .pt model files in its model directory, and avoid running it in environments where outbound proxies are part of your security controls until those behaviors are fixed or explicitly governed.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (4)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/utils/content_extractor.py:62
Finding

Arbitrary URL Disclosure Through Jina Reader

Content
View full analysis
Optional[str]: """ Use Jina Reader to extract webpage content in Markdown format. """ if not url or not url.startswith("http"): return None logger.info(f"Extracting content from: {url} via Jina...") headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) " "AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/131.0.0.0 Safari/537.36", "Accept": "application/json" } api_key = os.getenv("JINA_API_KEY") has_api_key = bool(api_key and api_key.strip()) if has_api_key: headers["Authorization"] = f"Bearer {api_key}" cls._wait_for_rate_limit(has_api_key) try: full_url = f"{cls.JINA_BASE_URL}{url}" response = requests.get(full_url, headers=headers, timeout=timeout) ``` The functionality is exposed to the Agent as follows: ```python def fetch_news_content(self, url: str) -> str: """ Use Jina Reader to retrieve the body of a specified URL. """ content = self._news_tools.fetch_news_content(url) if content: return content[:5000] return "Content retrieval failed" ``` ### Technical Analysis The only validation applied to the supplied URL is `url.startswith("http")`. The code does not: - Parse the URL using a standards-compliant URL parser. - Restrict the scheme strictly to `http` or `https`. - Reject URLs containing embedded usernames or passwords. - Reject localhost, private, link-local, loopback, or reserved destinations. - Restrict retrieval to approved public news domains. - Remove credentials, signatures, s ...[truncated 2090 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/utils/predictor/evaluation.py:36
Finding

Arbitrary Code Execution Through Unsafe PyTorch Checkpoint Loading

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/utils/stock_tools.py:12
Finding

Automatic Bypass of Administrator-Configured Egress Proxies

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/visualizer.py:429
Finding

HTML Injection and Unpinned Remote Script Execution in Generated Draw.io Reports

Content
View full analysis
{title} body {{ font-family: sans-serif; padding: 20px; }} .mxgraph {{ border: 1px solid #ddd; background: #fff; }}

{title}

""" ``` ### Technical Analysis The Draw.io configuration is escaped before insertion into the `data-mxgraph` attribute, but the `title` parameter is inserted directly into both the `` and `<h2>` elements. If an attacker controls or influences the title, markup such as a closing element followed by an event handler or script element can be written into the generated HTML. The payload executes when a user opens the generated report in a browser. The same document loads executable JavaScript from: ```text https://viewer.diagrams.net/js/viewer-static.min.js ``` The script is not bundled, version-pinned, or protected with Subresource Integrity. Its effective code can therefore change after the Skill package has been reviewed. Opening a generated report also initiates an undeclared outbound request to diagrams.net. The absence of a restrictive Content Security Policy further increases the effect of both title injection and remote script compromise. ### Attack Path 1. An attacker supplies a report, chart, ticker, or event title containing HTML or JavaScript markup. 2. The title reaches `render_drawio_to_html ...[truncated 1226 chars]
Remediation
View remediation
` and `

` elements. 3. Prefer a templating engine with automatic context-aware escaping. 4. Bundle a reviewed, fixed version of the Draw.io viewer locally instead of loading mutable remote code. 5. If a remote asset is unavoidable, pin an immutable version and use a verified Subresource Integrity hash with an appropriate `crossorigin` attribute. 6. Add a restrictive Content Security Policy that blocks inline scripts and permits scripts only from explicitly approved sources. 7. Validate and constrain all report metadata before HTML rendering. 8. Add regression tests using payloads containing closing tags, event handlers, script elements, encoded markup, and malformed Unicode. 9. Document all network activity performed when generated reports are opened. ]]>

Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • 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
Findings (100)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Generating full interactive charts and HTML files, plus ML/training and sentiment visualizations, is broader than merely emitting finance chart configurations. The undeclared file output and generalized visualization capabilities increase persistence and content-generation surface in ways users and security controls may not anticipate.

Content

No source excerpt is available for this finding.