T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/create_collage_application.py:5- Finding
Student profile data is transmitted to an undisclosed third-party UAT endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s core workflow is understandable, but it sends student application data to an external UAT service without clear user-facing disclosure and may ask users to paste an API key into chat.
Review before installing. This skill may send a student’s province, score, rank, selected subjects, and intended majors to an external UAT service to generate the application sheet. Do not paste API keys into chat; only use a trusted secret mechanism, and install only if you accept the external processing and the lack of documented retention, operator, and consent details.
scripts/create_collage_application.py:5Student profile data is transmitted to an undisclosed third-party UAT endpoint
scripts/create_collage_application.py:12API-key handling is misleading and can cause unnecessary secret exposure
scripts/verify_correct_info.py:53Omitting the documented optional ranking causes an unhandled exception
The documented behavior says the skill provides college application guidance, but the implementation instructions imply third-party API use and data transmission that are not disclosed in the description. That mismatch undermines informed consent and can expose sensitive student information such as province, subjects, score, rank, majors, and possibly API credentials to undisclosed external services.
The skill invokes Python scripts and explicitly depends on the requests package, indicating outbound network capability, but it does not declare any tool scope, permissions, or allowed-tools constraints. This creates an under-scoped skill where external communication may occur without transparent declaration or policy restriction, increasing the risk of unauthorized data transmission.
The description is written as a fixed Chinese-language instruction for the skill's behavior, with no indication that users may choose another language or that the locale restriction is required for compliance or regional limitations. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.
The skill explicitly tells the agent to ask the user to input an API key in chat if the environment variable is unavailable. Collecting secrets through normal conversation is unsafe because chat logs may be retained, exposed to operators, or reused by downstream systems, leading to credential compromise and abuse of the associated external account.
The code sends user-supplied personal and educational information to an external domain via requests.post, creating a real data exfiltration/trust-boundary crossing risk. Although HTTPS is used, the danger is not transport encryption but the transfer itself to an external service, especially one labeled as UAT, with no authentication header usage, validation of destination trust, or user-facing notice.
"majors": majors.split(","),
}
url = "https://wxc-college-uat.randomlife.cn/v1/collage_application/create"
response = requests.post(url, json=data, timeout=30)
return response.json()
The function transmits sensitive educational/profile data (province, score, rank, course selection, and major preferences) to an external service without any visible consent, disclosure, or minimization controls in the code. This is particularly concerning because the endpoint is a third-party UAT environment, which may have weaker security and data-handling practices than production systems.
All user-facing CLI help strings are written only in Chinese, and the script's accepted domain values are Chinese-only throughout the file. For a general-purpose skill, this can constitute a locale policy issue because the user is not offered any language choice or opt-in.