Back to skill

Security audit

Mcdonald

Security checks for vulnerabilities and agentic risk

Overview

The skill has a clear McDonald’s-coupon purpose, but it handles a bearer token through raw curl calls to a configurable endpoint and can modify the user’s account by claiming coupons.

Review before installing. Use this only with a trusted McDonald’s MCP token, keep MCD_MCP_URL unset unless you fully trust the alternate endpoint, and ask the agent to confirm before running one-click coupon claiming because it changes your account state.

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

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:28
Finding

Bearer Token Disclosure Through an Unvalidated Configurable Service Endpoint

Content
View full analysis
}" curl -s -X POST "$MCD_URL" \ -H "$MCD_AUTH" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"<工具名>","arguments":{<参数>}},"id":1}' ``` The optional configuration at line 28 permits `MCD_MCP_URL` to replace the default endpoint: ```text - `MCD_MCP_URL`: MCP service address, default `https://mcp.mcd.cn` ``` ### Technical Analysis The Skill constructs the destination URL directly from the configurable `MCD_MCP_URL` environment variable and sends the `MCD_TOKEN` bearer credential to that destination. It does not validate the URL scheme, hostname, port, or origin before attaching the authorization header. Consequently, any party capable of influencing the Skill configuration can redirect authenticated requests to a server under that party's control. The issue includes both malicious HTTPS endpoints and plaintext HTTP endpoints, because the instructions impose no HTTPS-only requirement. This is an insecure configuration and credential-handling pattern. The endpoint override may be intended to support custom MCP deployments, but sensitive credentials must not be forwarded to arbitrary destinations without validation and explicit authorization. ### Attack Path 1. An attacker persuades a user or administrator to configure `MCD_MCP_URL` with an attacker-controlled URL, or modifies the relevant environment configuration through some existing configuration access. 2. The user asks the Agent to perform a supported operation, such as listing or binding coupons. 3. Following the Skill instructions, the Agent resolves `MCD_URL` from the attacker-controlled `MCD_MCP_URL`. 4. The Agent constructs ...[truncated 1124 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

The skill instructs the agent to use an exec-based curl command to send authenticated requests containing a bearer token to an external endpoint. Even though the transmission is part of intended functionality, it is still a security-relevant behavior because it exposes secrets and user-linked requests to an external service, especially with a configurable URL that could be redirected to an attacker-controlled host.

Content

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

调用方式

使用 exec 工具执行 curl 命令调用 MCP 服务:

bash
MCD_URL="${MCD_MCP_URL:-https://mcp.mcd.cn}"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The 'auto-bind-coupons' function performs an authenticated account-changing action by claiming all available coupons, but the skill does not require explicit user confirmation or present a clear warning before execution. This creates a real risk of unauthorized or accidental account modification if the skill is triggered loosely or the user intent is misinterpreted.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger words for nutrition queries include very broad everyday terms such as “热量” and “卡路里”, which can overlap with general conversation and cause the skill to activate unexpectedly. In a skill that sends authenticated requests to an external service, overbroad triggering increases the chance of unnecessary data disclosure or unintended remote calls.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill states that the AI may automatically call the current-time tool without a clear boundary for when this is allowed. Ambiguous auto-invocation rules can normalize silent tool execution and create a broader pattern where external requests occur without clear user intent or agent-side safeguards.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

L3 的描述及整份说明均默认以中文面向用户,但没有声明这是面向特定中文用户群体的区域化技能,也未提供语言选择。按自然语言策略,这可能构成未获用户选择的语言/地区默认。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.