T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:55- Finding
Potential Unauthorized Disclosure of Meeting Metadata
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:55-76andSKILL.md:112-120
Vulnerability Type: Missing authorization and data-minimization requirements
Risk Level: MediumEvidence
text GET /api/rooms/releasedjson { "code": 0, "data": { "total": 2, "list": [ { "id": 2807122, "room_id": 16795, "room_name": "4F Meeting Room 4", "area_name": "Oriental Electronic Technology Building", "city_name": "Beijing", "start_time": 1780563601000, "end_time": 1780567200000, "booker_username": "Employee Name", "subject": "Meeting" } ] } }text Group the results by city and office area and display a table for each office area: | Meeting room | Booker | Meeting subject | Release time | |--------------|--------|-----------------|--------------| | 4F Meeting Room 4 | Employee Name | Meeting | 11:00 |Technical Analysis
The Skill instructs the agent to retrieve recently released meeting-room records and present both
booker_usernameandsubjectto the requesting user. These fields can contain employee identity information and confidential business context, but they are not necessary to answer whether a meeting room has become available.The Skill does not require authentication, requester authorization, role validation, scope checks, consent verification, or redaction before disclosing these fields. Although server-side behavior cannot be verified from the reviewed file, the documented workflow would expose the metadata whenever the API makes it available to the agent. Authorization must be enforced by the server and explicitly preserved by the Skill rather than being inferred from access to the endpoint.
Attack Path
- A user asks the agent which meeting rooms were recently released.
- The Skill directs the agent to call `GET https://smartr ...[truncated 1176 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
booker_usernameandsubjectfrom user-facing output. Return only the room name, location, capacity, equipment, and release time needed for availability queries. - Modify the API response schema so
/api/rooms/releaseddoes not return personal or confidential meeting fields to ordinary room-query clients. - Require authenticated access and enforce authorization server-side using least-privilege roles and office-location scopes.
- Do not treat possession of an endpoint URL, network access, or successful authentication as authorization to view all booking metadata.
- If business requirements require these fields, restrict them to explicitly approved roles and document the applicable purpose and retention policy.
- Apply field-level redaction before data reaches the agent. Avoid relying solely on prompt instructions to suppress sensitive fields.
- Add audit logging and monitoring for repeated or bulk requests to the released-room endpoint.
- Add tests confirming that unauthorized users cannot retrieve organizer identities or meeting subjects and that the Skill never renders those fields for ordinary availability requests.
- Remove
