Back to skill

Security audit

xinjianxue-skill-roommate-cn

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly transparent, but it asks users to send sensitive birth, gender, and location details to an external paid API for roommate advice.

Review the privacy tradeoff before installing. Use this only if you are comfortable sharing birth details, gender, and location with the Xinjianxue service and having the agent store service credentials in a secret store. Avoid submitting another person’s details unless they clearly consented.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

other

Warning
Location
SKILL.md:68
Finding
Excessive Collection and External Transmission of Personal Data<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:68` and `SKILL.md:199-201` **Vulnerability Type**: Excessive personal-data collection and external disclosure **Risk Level**: Medium ### Evidence The relevant source text is faithfully translated into English below: ```markdown > Before starting: When this service API is called, personal information > concerning the analyzed person—including date and time of birth, gender, > birthplace, and current location—is sent to the Xinjianxue API > (`chinaapi.xinjianxue.com`) for processing. ``` ```markdown - a (complete): Date and time of birth, gender, birthplace (country and province/region/city), and current location. - b (basic): Date of birth, gender, and current location. - Both levels require gender, date of birth, and the analyzed person's current location (country and province/region/city). ``` ### Technical Analysis The Skill provides advice about roommate conflicts, communication, boundaries, and household rules. Mandatory collection of date of birth, gender, birthplace, and city-level current location is not reasonably necessary to provide those functions. The instructions require the Agent to send this information to an external paid API. Although `SKILL.md:68` requires user consent and states that the service does not retain the information, this repository contains no technical control capable of verifying or enforcing that retention claim. Consent does not replace data minimization. The information can be linkable or identifying when combined, particularly an exact birth date or time together with gender and location. The multi-person report capability also creates a risk that information about another person could be submitted without independently verifiable consent from that person. This issue does not establish unauthorized system access or privilege escalation. It is therefore classified as `other: Excessive Personal Data Collection` rather than T05. ### Attack Path 1. A ...[truncated 1452 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Apply strict data minimization** - Remove birth date, birth time, gender, birthplace, and current location as mandatory inputs for roommate advice. - Collect only facts directly relevant to the conflict, such as noise schedules, shared-property boundaries, cleaning responsibilities, prior communication, and desired outcomes. 2. **Provide a local, no-upload mode** - Make ordinary communication scripts and boundary-negotiation guidance available without account binding or external API calls. - Clearly present external analysis as optional rather than necessary for using the Skill. 3. **Use granular, purpose-specific consent** - List every field that will be transmitted before collection. - Explain why each field is needed, the recipient, the cost, and the applicable retention period. - Allow users to omit optional fields without preventing access to core advice. 4. **Protect third-party information** - Do not collect or transmit another person's personal data merely on the requesting user's assertion of consent. - Prefer anonymous descriptions of roommate behavior. - Where external processing is unavoidable, require independently verifiable consent from every analyzed person. 5. **Reduce location precision** - Avoid collecting location unless a concrete feature requires it. - If regional context is necessary, request only the least precise region sufficient for that purpose rather than country, province, and city. 6. **Establish enforceable provider controls** - Document retention limits, deletion procedures, subprocessors, access controls, breach notification, and permitted processing purposes. - Verify the external provider's no-retention assertion contractually and technically where possible. - Ensure request and application logs redact personal fields and credentials. 7. **Add lifecycle controls** - Delete collected input from temporary Agent state immediately after co ...[truncated 137 chars]
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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

Static analysis

No suspicious patterns detected.