Back to skill

Security audit

worldcup-analyzer

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed football prediction client that calls a third-party API, with some privacy and dependency cautions but no hidden or purpose-mismatched behavior found.

Install only if you are comfortable sending football matchup queries and any configured SOCCER_API_KEY to the configured prediction service. Prefer leaving WORLDCUP_API_BASE at the documented production host unless you are deliberately testing another service, and consider tightening dependency versions before production use.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The compliance eval is intended to verify refusal of betting advice, but the hard-coded refusal text immediately offers projected outcomes and says users can interpret the numbers however they like. That undermines the stated safety boundary and can functionally enable betting-related assistance despite the claimed refusal behavior.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The README states that the client will automatically request a temporary API key from a third-party service and use remote simulation endpoints, but it does not explicitly warn that user-supplied match queries and metadata will be transmitted off-platform. In an agent skill context, undocumented external network transmission can create privacy, consent, and trust issues, especially because the service is not a well-known first-party endpoint and users may assume the skill is self-contained.

External Transmission

Medium
Category
Data Exfiltration
Content
resp = httpx.get(url, params=payload, headers=headers, timeout=DEFAULT_TIMEOUT)
        else:  # requests fallback
            if method == "POST":
                resp = requests.post(url, json=payload, headers=headers, timeout=DEFAULT_TIMEOUT)
            else:
                resp = requests.get(url, params=payload, headers=headers, timeout=DEFAULT_TIMEOUT)
    except Exception as e:
Confidence
91% confidence
Finding
The client transmits user-supplied match queries and authentication headers to an external service at a configurable base URL. Because WORLDCUP_API_BASE can be overridden from the environment, this code can send API keys and user query data to an unintended host if the environment is compromised or misconfigured.

Unpinned Dependencies

Low
Category
Supply Chain
Content
httpx>=0.24
# requests is optional but kept as a hard fallback for environments without
# httpx. Comment out if you want to enforce httpx-only.
requests>=2.28
Confidence
82% confidence
Finding
The unpinned requests dependency is more dangerous here because the same file also indicates compatibility with a specifically vulnerable branch (2.28). Leaving it as requests>=2.28 allows installs to drift unpredictably and may still resolve to affected versions in some environments, increasing the chance that known HTTP-client flaws are present in production.

Known Vulnerable Dependency: requests==2.28 — 8 advisory(ies): CVE-2024-47081 (Requests vulnerable to .netrc credentials leak via malicious URLs); CVE-2024-35195 (Requests `Session` object does not verify requests after making first request wi); CVE-2026-25645 (Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility func) +5 more

High
Category
Supply Chain
Confidence
97% confidence
Finding
The static finding identifies requests 2.28 as having multiple known advisories, including credential leakage via malicious URLs and request verification problems. In a skill that may fetch schedules, results, or other remote football data, an HTTP client with known flaws can expose secrets, weaken TLS/verification guarantees, or enable attacker-controlled network interactions.

Static analysis

No suspicious patterns detected.