Back to skill

Security audit

Football Predictor

Security checks for vulnerabilities and agentic risk

Overview

This football betting helper is not clearly malicious, but it needs Review because it grants broad agent powers, uses random mock data for betting advice, and includes under-disclosed EvoMap network and credential behavior.

Review before installing. Use only in a sandbox unless the maintainer removes broad tool permissions, clearly labels or disables mock betting data, documents and gates EvoMap sharing, rejects plaintext or unapproved hub URLs, and adds controls for stored prediction history. Do not provide EvoMap secrets or rely on its betting recommendations as real data in the current package.

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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
src/evomap/client.js:10
Finding

Bearer Credential May Be Transmitted to an Untrusted or Plaintext Endpoint

Content
View full analysis
{ const url = new URL(endpoint, this.hubUrl); const isHttps = url.protocol === 'https:'; const lib = isHttps ? https : http; const options = { hostname: url.hostname, port: url.port || (isHttps ? 443 : 80), path: url.pathname, method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': this.nodeSecret ? `Bearer ${this.nodeSecret}` : '' } }; const req = lib.request(options, (res) => { let body = ''; res.on('data', chunk => body += chunk); res.on('end', () => { ``` ### Technical Analysis The destination used by the EvoMap client is controlled by the `A2A_HUB_URL` environment variable without an origin allowlist. The request implementation explicitly accepts both HTTPS and plaintext HTTP and attaches `A2A_NODE_SECRET` as a bearer credential regardless of the selected protocol or hostname. Consequently, a process configuration mistake or an attacker capable of influencing environment variables can redirect credential-bearing requests to an arbitrary server. If HTTP is selected, an on-path attacker can also observe or modify the request. The exposed `fetchRelevantKnowledge()` and `heartbeat()` methods use this request function. Their request bodies may disclose the node identifier, fetch signals, timestamps, capabilities, and operational statistics in addition to the bearer secret. The normal CLI flow does not currently call these two methods, so exploitation requires another cons ...[truncated 1419 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:1
Finding

Skill Declares Agent Capabilities Beyond Its Functional Requirements

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (27)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The documentation explicitly mentions external knowledge-network interaction ('接入EvoMap网络获取/贡献知识') while the top-level description does not disclose outbound communication, knowledge sharing, remote service interaction, or possible credentialed access. In a skill with exec and sessions_spawn privileges, undisclosed external communication and data sharing materially increase the risk of data exfiltration, unapproved network access, and unexpected third-party interactions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The documentation explicitly mentions external knowledge-network interaction ('接入EvoMap网络获取/贡献知识') while the top-level description does not disclose outbound communication, knowledge sharing, remote service interaction, or possible credentialed access. In a skill with exec and sessions_spawn privileges, undisclosed external communication and data sharing materially increase the risk of data exfiltration, unapproved network access, and unexpected third-party interactions.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: axios==1.13.6 — 16 advisory(ies): CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more

High
Category
Supply Chain
Confidence
97% confidence
Finding

The lockfile pins axios 1.13.6, and the supplied advisories include multiple high-severity issues affecting request handling, proxy bypass, and prototype-pollution-related attack paths. In a football prediction agent that automatically collects remote match and odds data, a vulnerable HTTP client is directly security-relevant because attacker-controlled endpoints, redirects, or proxy edge cases could expose SSRF, credential leakage, or manipulated responses.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: form-data==4.0.5 — 1 advisory(ies): CVE-2026-12143 (form-data: CRLF injection in form-data via unescaped multipart field names and f)

High
Category
Supply Chain
Confidence
88% confidence
Finding

form-data 4.0.5 is reported vulnerable to CRLF injection through unescaped multipart field names and filenames. If this agent ever uploads files or constructs multipart requests using user-controlled or scraped values, an attacker may be able to inject crafted headers or alter request structure, which is especially concerning when interacting with third-party sports data or affiliate endpoints.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: axios==1.13.6 — 16 advisory(ies): CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more

High
Category
Supply Chain
Confidence
97% confidence
Finding

The package depends on axios 1.13.6, which is flagged as having multiple known advisories, including SSRF and man-in-the-middle/prototype-pollution-related issues. In the context of a football prediction agent that likely retrieves external match, odds, or analytics data over the network, vulnerable HTTP client behavior materially increases the risk of request manipulation, credential leakage, or access to unintended internal resources.

Content

No source excerpt is available for this finding.

Lp1

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'env' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The auto-trigger description is broad enough to activate on common football, betting, or analysis-related queries, which can cause unintended invocation of a skill that has execution and session-spawning capabilities. Overbroad triggering increases the chance of surprising behavior, unnecessary data persistence, or external actions in contexts where the user did not intend to use this skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill advertises persistent storage of prediction history, results, statistics, and model parameters, and also mentions interaction with an external knowledge network, but provides no user warning, consent flow, or privacy explanation. This is dangerous because users may unknowingly cause data retention or third-party sharing, especially in a domain involving betting behavior that may be sensitive in some environments.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This JSON configuration uses Chinese-only natural-language values for league and country names across the file. Because SQP-3 applies to all file types and flags language/locale policy violations, this is a concern when the skill imposes a specific language without indicating user choice or a justified region-specific constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Natural-language strings and usage guidance in this file are predominantly Chinese, including the documented input format and CLI help, while only limited English aliases are supported for some commands. This effectively imposes a locale expectation without explicit user opt-in or justification.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The code sends learned insights to an external EvoMap service whenever learning.has_value is true, but there is no visible user consent, disclosure, data minimization, or outbound-sharing control at this layer. Even if the shared content is intended as model improvements, it may include derived betting behavior, historical predictions, or other sensitive operational data, creating a privacy and data-governance risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file presents all instructions and reference content in Chinese, including the title and section text, with no indication that the user can choose another language or that the skill is intentionally limited to Chinese-speaking users. That can violate a language/locale policy when a skill effectively forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The generated user-facing prediction fields are hard-coded in Chinese, including direction values and recommendation text such as '主胜', '客胜', and '建议小球'. This imposes a specific language on all users without any visible locale selection or documented justification, which matches the language/locale policy violation criterion.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This file uses Chinese-only natural-language strings in the module header, comments, and console output, including the visible runtime log message at L022. The skill does not provide any user opt-in, alternate locale, or documentation indicating that the language restriction is intentional for a region-specific use case.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module claims to collect match data and track results, but it mostly returns randomized mock data and simulated scores. In a betting-prediction skill, this is dangerous because users may act on fabricated information believing it to be real, causing financial harm and undermining trust.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This module introduces external knowledge-sharing and telemetry capabilities that are not disclosed by the skill's stated football prediction purpose. Undisclosed outbound data flows expand the trust boundary and can leak user-derived insights, model outputs, or operational metadata to a third-party service without informed consent.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code reads hub credentials from environment variables and is designed to perform authenticated communication with an external network unrelated to the manifest's user-facing purpose. This creates a hidden exfiltration path and increases the blast radius if the agent is compromised or if sensitive predictions, metadata, or identifiers are sent off-platform.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The request path transmits signals, sender identity, timestamps, and possibly authentication material to an external service without any evident user warning, consent flow, or disclosure. In the context of a football prediction skill, such undisclosed outbound communication is more suspicious because it is ancillary to the advertised functionality and may expose behavioral or proprietary analytics data.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The heartbeat sends status, capabilities, prediction statistics, and node identity to an external hub with no user-facing justification tied to football analysis. Even if the payload is small, persistent telemetry can reveal deployment activity, usage patterns, and operational characteristics that aid profiling or targeting.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill name/description and command examples are presented only in Chinese, and the file does not state that the skill is region-specific or provide any user language choice. This can violate language or locale policy when a skill implicitly requires a specific language without opt-in.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: follow-redirects==1.15.11 — 1 advisory(ies): CVE-2026-40895 (follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Ta)

Low
Category
Supply Chain
Confidence
91% confidence
Finding

follow-redirects 1.15.11 is flagged for leaking custom authentication headers across cross-domain redirects. This skill appears designed to automatically ingest external football and betting data, so if it accesses authenticated APIs, a malicious or compromised upstream service could redirect requests and capture bearer tokens or API keys.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The package description is written only in Chinese ("足球预测与分析Agent"), which indicates a language-specific presentation without offering any user language choice or documenting that the skill is intended only for a Chinese-speaking or region-specific context. This matches the policy category for language or locale constraints that are imposed without opt-in or clear justification.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
91% confidence
Finding

The dependency version uses a caret range (^1.13.6), which permits automatic installation of future 1.x releases. This can introduce supply-chain risk by allowing unintended dependency changes, including newly introduced vulnerabilities or breaking behavior, especially in an agent that may fetch remote football or betting data.

Content

Scanner excerpt · package.json (reported line 23)May include surrounding context.

json
"author": "",
  "license": "MIT",
  "dependencies": {
    "axios": "^1.13.6"
  }
}

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The header advertises optional API-backed collection, but the only API method is stubbed to always return null, guaranteeing fallback to mock data. In this skill context, that misrepresentation increases the risk that downstream components or users will trust non-real data as live intelligence for betting decisions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file's human-facing natural-language strings and comments are entirely in Chinese, including operational log messages, without any indication that the skill is region-specific or that users can choose their preferred language. This can violate language/locale policy when a skill implicitly forces one language without opt-in or documented justification.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.