T05 · Unauthorized Access and Privilege Escalation
- Location
install.sh:35- Finding
Undisclosed Cross-Skill Authentication Token Copying
- Content
View full analysis
/dev/null || true fi ``` ### Technical Analysis The installation script searches another Skill's directory for a Xiaomi authentication token and copies that token into the current project directory. This crosses a Skill isolation boundary and violates least privilege because installation does not need to duplicate an existing credential merely to create a virtual environment and install dependencies. The copy operation does not specify restrictive destination permissions. Its effective permissions therefore depend on the source mode and local environment. Duplicating the token increases the number of locations from which account credentials can be exposed through local access, backups, diagnostic archives, or later package modifications. The behavior is not disclosed in the documented installation procedure. In addition, `2>/dev/null || true` suppresses copy errors, making the credential operation less visible to the user. The reviewed project does not explicitly exfiltrate the copied token to an unrelated destination, so the confirmed issue is unauthorized credential access and expansion of credential exposure rather than confirmed theft. ### Attack Path 1. A user has previously authenticated through the sibling `mijia` Skill, creating `$HOME/.qclaw/skills/mijia/.mijia_token`. 2. The user installs this Skill by running `bash install.sh`. 3. The installer detects and reads the sibling Skill's token without requesting explicit consent. 4. The token is duplicated into the current Skill directory as `.mijia_token`. 5. Any process, dependency, backup operation, packaging process, or future code with access to this directory may ...[truncated 714 chars]- Remediation
View remediation
/dev/null || true`; report failures without printing secret contents. 7. Document credential storage, token lifetime, revocation procedures, and all components that can access the token. ]]>
