other
- Location
SKILL.md:48- Finding
External Disclosure of Personal Data Without an Explicit Consent Gate
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 48–63
Vulnerability Type: Personal data disclosure to an external service
Risk Level: MediumThe skill defines a booking operation that sends a customer's name, email address, and telephone number to the external Lokuli MCP endpoint at
https://lokuli.com/mcp/sse. It does not instruct the agent to obtain explicit confirmation immediately before transmitting this information or creating the booking.Complete relevant code snippet:
markdown ### create_booking ```json { "method": "tools/call", "params": { "name": "create_booking", "arguments": { "providerId": "xxx", "serviceId": "yyy", "timeSlot": "2025-02-10T14:00:00-08:00", "customerName": "John Doe", "customerEmail": "john@example.com", "customerPhone": "+13105551234" } } }text ### Technical Analysis The `create_booking` operation causes an external side effect and transmits personally identifiable information to a third-party endpoint. Although these fields are relevant to making an appointment, the skill contains no required confirmation step covering the selected provider, service, time, price, destination service, or personal fields to be disclosed. Consequently, an agent could interpret a general request such as “book a haircut” as sufficient authorization to submit the booking. The issue is not evidence of malicious endpoint behavior; it is an authorization and privacy-control weakness in the skill instructions. ### Attack Path 1. A user asks the agent to find or book a haircut. 2. The agent invokes `search` and `check_availability`. 3. The agent obtains or already possesses the user's name, email address, and telephone number. 4. Because the skill specifies no mandatory final confirmation, the agent invokes `create_booking` without presenting the complete transaction to the user. 5. The user's person ...[truncated 632 chars]- Remediation
View remediation
Remediation Suggestions
- Require a final, explicit user confirmation immediately before invoking
create_booking. - Present the provider, service, date and time, total price and cancellation terms when available, external recipient domain, and every personal field that will be transmitted.
- Clearly distinguish searching and availability checks from the irreversible or side-effecting booking operation.
- Send only fields required by the booking provider and avoid reusing personal information from unrelated context.
- Require the agent to stop if the user declines, provides ambiguous approval, or changes any transaction detail after confirmation.
- Document the external service's privacy, retention, authentication, and error-handling expectations.
- Return a booking receipt and provide cancellation instructions after a successful request.
- Require a final, explicit user confirmation immediately before invoking
