Back to skill

Security audit

麦当劳 MCP 点餐

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent McDonald's China ordering integration, but users should handle the account token carefully because it enables account-linked actions.

Before installing, treat the MCP token like a password for your McDonald's account: do not paste it into shared chats or logs, restrict any config file that stores it, and revoke or rotate it if exposed. Confirm prices and order details before creating paid or points-redemption orders.

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:39
Finding
Identity-Bearing MCP Token Exposed Through Command-Line Arguments and Plaintext Configuration<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 39–58 **Vulnerability Type**: Sensitive credential exposure through insecure secret handling **Risk Level**: Medium ### Vulnerable Code Snippet ```bash openclaw mcp set mcd-mcp \ --transport streamable-http \ --url https://mcp.mcd.cn \ --header "Authorization" "Bearer YOUR_MCP_TOKEN" ``` ```json { "mcp": { "servers": { "mcd-mcp": { "url": "https://mcp.mcd.cn", "transport": "streamable-http", "headers": { "Authorization": "Bearer YOUR_MCP_TOKEN" } } } } } ``` ### Technical Analysis The Skill instructs the user to substitute an identity-bearing MCP token directly into a shell command or store it as a plaintext bearer credential in `~/.openclaw/openclaw.json`. Passing the token as a command-line argument may expose it through shell history, terminal capture, agent execution logs, telemetry, debugging output, or process inspection while the command is running. The fallback configuration persists the bearer token in plaintext without requiring restrictive file permissions, encryption, a credential manager, or log redaction. The document separately identifies this token as representing the user's McDonald's membership identity. Consequently, it should be treated as a sensitive authentication secret rather than ordinary configuration data. Although the reviewed file does not transmit the token to an unrelated endpoint, the prescribed handling unnecessarily increases the probability of credential disclosure. ### Attack Path 1. A user obtains a valid MCP token associated with their McDonald's membership account. 2. Following the Skill instructions, the user or agent inserts the token into the `openclaw mcp set` command or the OpenClaw JSON configuration. 3. The token is retained in shell history, an agent transcript, execution logs, terminal recordings, or a plaintext configuration file. 4. An attacker with access to th ...[truncated 1016 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Do not ask users to paste MCP tokens into the conversation or expose them to an agent transcript. 2. Use a non-echoing local credential prompt so the secret is entered directly by the user. 3. Store the token in an operating-system credential manager, encrypted secret store, or OpenClaw-supported secret provider instead of embedding it in JSON. 4. Reference the credential indirectly through a secret identifier or protected environment variable where supported. 5. Avoid placing the token in command-line arguments. If a command must consume it, provide it through protected standard input or a secure credential API. 6. If a configuration file is unavoidable, restrict it to the owning user, such as mode `0600` on Unix-like systems, and ensure parent directories are not broadly accessible. 7. Redact `Authorization` headers and bearer tokens from command output, application logs, telemetry, crash reports, and debugging traces. 8. Document how users can revoke and rotate a token after suspected disclosure. 9. Minimize token permissions and lifetime if the MCP service supports scoped or short-lived credentials. 10. Add explicit warnings that saved addresses, points, coupons, and transactional operations may be accessible to anyone who obtains the token. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill handles food ordering workflows that necessarily transmit sensitive user data such as delivery addresses, store selections, account-linked coupons, points balances, and order details to the McDonald's MCP service, but the referenced section does not clearly warn users about that exposure. Because the skill also asks users to supply an MCP token representing their member identity, missing disclosure increases the risk of users unknowingly sharing personal and account-linked data with a third-party service.

Natural-Language Policy Violations

Low
Confidence
76% confidence
Finding
The skill description presents the primary instructions in Chinese while appending an English usage sentence, effectively imposing a default locale/language presentation without offering a user choice. The regional scope for mainland China is documented, but the language preference itself is not presented as optional or user-selectable.

Static analysis

No suspicious patterns detected.