Back to skill

Security audit

Polymarket News Monitor

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Polymarket news monitor, but users should understand that webhook alerts can send monitoring data to an external URL they configure.

Install only if you are comfortable with a script that periodically contacts Polymarket endpoints and writes local monitoring state. If you use webhook notifications, choose and protect the webhook URL carefully, assume alert metadata is sent to that third party, and avoid running it with untrusted config files or from sensitive internal networks.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Note
Location
scripts/polymarket-monitor.py:255
Finding

Disabled Notifications Still Transmit Alerts to Configured Webhooks

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/polymarket-monitor.py:262
Finding

Unrestricted Webhook Destination Permits Blind Server-Side Request Forgery

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (6)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill advertises executable behavior that performs network access and writes local files, but it does not declare any tool scope or permissions metadata. This creates an authorization and transparency gap: users or hosting systems cannot easily constrain what the skill is allowed to do, increasing the risk of unintended outbound requests or file modification when the skill runs.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation states the skill is 'read-only' and uses 'local data only', yet the configuration supports outbound webhook notifications to arbitrary external URLs. This is a misleading security claim that can cause users to underestimate the data-exfiltration and third-party communication risk, especially in automated environments where webhook destinations may be attacker-controlled or misconfigured.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
55% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · scripts/polymarket-monitor.py (reported line 73)May include surrounding context.

python
self.alerts = []
        
    def _load_state(self):
        """Load previous state"""
        if self.state_file.exists():
            with open(self.state_file) as f:
                return json.load(f)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The code can send alert contents to an arbitrary configured webhook via an outbound HTTP POST, which transmits collected titles, URLs, timestamps, and keyword classifications off-host. Although the code structure shows this is configurable, there is no explicit user-facing warning, confirmation, or disclosure near the operation indicating that alert data will be sent to a third-party endpoint.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% 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 · scripts/polymarket-monitor.py (reported line 264)May include surrounding context.

python
elif method == "webhook" and self.config["notification"]["webhook"]:
            try:
                requests.post(
                    self.config["notification"]["webhook"],
                    json=alert,
                    timeout=5

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This markdown file describes configurable webhook notifications and provides a Slack webhook example, which implies monitored event data may be sent to an external service. The README does not include a user-facing warning about potential privacy or data-sharing implications of enabling notifications.

Content

No source excerpt is available for this finding.