Back to skill

Security audit

Massive(polygon.io) Stock Data Feed

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed market-data connector that uses Massive API credentials to fetch quotes, streams, and bulk data, without evidence of hidden trading, persistence, or unrelated data access.

Install only if you intend OpenClaw to call Massive for market data. Keep Massive API and S3 keys out of logs and git, rotate keys if exposed, and consider reviewing or hash-locking the Python dependencies before running setup in a sensitive environment.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (2)

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:68
Finding

API Key Exposed Through URL Query Parameters

Content
View full analysis
`. 3. A proxy, server, tracing platform, exception handler, or debug logger records the complete URL. 4. An attacker or unauthorized operator with access to those records extracts the API key. 5. The attacker submits authenticated requests to Massive using the exposed credential. This attack requires access to URL-bearing logs, traces, or diagnostics; TLS prevents passive observers from reading the query string in transit. ### Impact Assessment A recovered key could permit unauthorized use of the victim's Massive API account within the permissions and subscription entitlements assigned to that key. Potential consequences include: - Consumption of API quota and rate limi ...[truncated 357 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/setup.sh:13
Finding

Python Dependencies Installed Without Cryptographic Integrity Verification

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 26)May include surrounding context.

md
description: S3 Secret Key from https://massive.com/dashboard/keys. Only needed for Flat Files. Optional.
    required: false
warnings:
  - Store credentials in a .env file or secret manager — never hardcode or log them.
  - Real-time WebSocket data requires a paid Massive subscription.
  - One concurrent WebSocket connection per asset class is allowed by default.
---

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/setup.sh (reported line 31)May include surrounding context.

sh
description: S3 Secret Key from https://massive.com/dashboard/keys. Only needed for Flat Files. Optional.
    required: false
warnings:
  - Store credentials in a .env file or secret manager — never hardcode or log them.
  - Real-time WebSocket data requires a paid Massive subscription.
  - One concurrent WebSocket connection per asset class is allowed by default.
---

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger text is very broad and instructs activation for essentially any request involving market or price data across many asset classes. Overbroad activation boundaries can cause the agent to invoke this skill in unintended contexts, increasing the chance of unnecessary external calls, use of sensitive credentials, or bypass of more appropriate skills with narrower scope.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 71)May include surrounding context.

md
import requests

API_KEY = os.environ["MASSIVE_API_KEY"]
BASE_URL = "https://api.massive.com/v1"

resp = requests.get(f"{BASE_URL}/stocks/trades",
    params={"apiKey": API_KEY, "ticker": "AAPL"})

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

This markdown file instructs the user to supply sensitive S3 credentials and includes example code that reads those credentials from environment variables and uses them to access remote storage. The document does not include any warning about protecting the keys, avoiding accidental disclosure, or the fact that the example performs remote data access/downloads.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This markdown file documents code that reads MASSIVE_API_KEY from the environment and sends it to a remote WebSocket endpoint for authentication. While the behavior is expected for this API reference, the document does not explicitly warn users that the example transmits credentials and market-subscription requests over the network.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.