Back to skill

Security audit

My Coffee

Security checks across malware telemetry and agentic risk

Overview

This coffee-ordering skill is mostly coherent, but it needs review because it handles real orders and bearer tokens with broader persistence and fallback command behavior than users may expect.

Review this skill before installing if you are comfortable letting it access a Luckin MCP token, create payment QR-code orders, query order status, and cancel orders. Prefer platform-managed MCP authentication or an environment variable over pasting tokens into chat, and avoid saving the token to ~/.my-coffee unless you accept the local credential-storage risk.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The skill instructs the agent to source an authentication token from multiple places, including chat history and a local file, and to persist it for reuse. For a coffee-ordering assistant, this expands credential handling far beyond the minimum necessary and creates unnecessary secret collection, retention, and reuse risks if the agent or environment is compromised.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The fallback path directs the agent to execute raw curl requests to a remote endpoint with bearer credentials, bypassing normal tool boundaries and introducing shell/network execution behavior into an instruction-only skill. This increases the attack surface for command misuse, unintended exfiltration, and insecure handling of sensitive request/response data.

Context-Inappropriate Capability

Low
Confidence
83% confidence
Finding
The skill instructs use of a third-party IP geolocation service to infer user location when precise coordinates are unavailable. Even if intended for convenience, this sends network-derived location data to an external service without a clearly necessary or consented basis for a coffee-ordering workflow.

Vague Triggers

Medium
Confidence
89% confidence
Finding
Trigger phrases such as generic requests to 'buy a cup' or 'drink a cup' are broad enough to activate the ordering workflow during ordinary conversation. In a payment/order skill, accidental activation can lead to unnecessary collection of location/order data or progression toward a real purchase.

Vague Triggers

Medium
Confidence
91% confidence
Finding
Cancellation triggers like '不要了' are contextually ambiguous and may match ordinary conversation unrelated to orders. In a transactional skill, this raises the risk of unintended cancellation actions against a live order if the agent over-applies the trigger.

Ssd 3

Medium
Confidence
97% confidence
Finding
The skill explicitly prioritizes reusing complete tokens found in current or historical chat content. This normalizes credential harvesting from conversation data and extends the lifetime and scope of sensitive secrets beyond the immediate interaction, increasing the chance of misuse or disclosure.

Ssd 3

Medium
Confidence
96% confidence
Finding
The skill invites the user to paste an access token directly into chat so the assistant can continue operating. Chat is typically not an appropriate secret-entry channel because it increases exposure to logs, memory, transcript retention, and accidental reuse by the model or surrounding systems.

Session Persistence

Medium
Category
Rogue Agent
Content
- `LUCKIN_MCP_TOKEN` 读取优先级:环境变量 `LUCKIN_MCP_TOKEN` > 当前对话用户明确提供的 token > 本地文件 `~/.my-coffee/LUCKIN_MCP_TOKEN`(仅在用户明确同意记录后可使用)。
- 如果用户在当前或历史消息里发过完整 token,应先尝试该 token,不要直接让用户重新登录平台获取。
- 用户发送 token 时必须先询问是否记录到 `~/.my-coffee/LUCKIN_MCP_TOKEN` 供后续对话复用;只有用户明确同意才可写入,禁止静默保存。
- 写入 token 前确保目录存在(`mkdir -p ~/.my-coffee`);写入后建议限制权限(如 `chmod 600 ~/.my-coffee/LUCKIN_MCP_TOKEN`)。
- 用户要求撤销保存时,删除本地 token 文件 `~/.my-coffee/LUCKIN_MCP_TOKEN`,并明确告知“后续将不再从本地文件复用 token”。
- 除非用户明确要求 MCP 配置,否则不要输出 Authorization token。
- 真实 MCP 请求必须使用完整 token:优先 `Authorization: Bearer ${LUCKIN_MCP_TOKEN}`;若用户已提供 token,则使用用户提供的完整原文。
Confidence
95% confidence
Finding
mkdir -p ~/.my-coffee`);写入后建议限制权限(如 `chmod 600 ~/.my-coffee/LUCKIN_MCP_TOKEN`)。 - 用户要求撤销保存时,删除本地 token 文件 `~/.my-coffee/LUCKIN_MCP_TOKEN`,并明确告知“后续将不再从本地文件复用 token”。 - 除非用户明确要求 MCP 配置,否则不要输出 Authorizat

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.