T09 · Insecure Skill Coding Practices
- Location
SKILL.md:43- Finding
Unprotected Plaintext Storage of Sensitive Consumer Evidence
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:43-50,SKILL.md:243-245,SKILL.md:285-287, andSKILL.md:341
Vulnerability Type: Plaintext storage of sensitive personal, financial, and consumer evidence
Risk Level: MediumComplete Relevant Snippets
The following English translations preserve the meaning of the relevant Skill instructions:
markdown 1. Use browser screenshots: - `browser(action=screenshot)` or `browser(action=open)` + `browser(action=screenshot)` - Save to: `~/.qclaw/workspace/Evidence_Package_YYYY-MM-DD/` - Naming format: `01_Purchase_Page_Product_Name.png`, `02_NMPA_Query_Product_Name.png` 2. User-uploaded images: - Ask the user to send images directly in the conversation. - After receiving them, the AI saves them to: `~/.qclaw/workspace/Evidence_Package_YYYY-MM-DD/`markdown Party B agrees to refund the purchase price to Party A's account ([payment method/account]) before [date].markdown Plaintiff: [name], identity-card number: [enter value], telephone number: [enter value]markdown Protect privacy: All evidence is used only for consumer-rights claims and is not distributed externally.Technical Analysis
The Skill directs the Agent to persist user-submitted receipts, payment records, product photographs, merchant communications, and other evidence in a predictable directory under
~/.qclaw/workspace/. Its generated legal templates may also contain identity-card numbers, telephone numbers, and payment-account information.No corresponding controls are specified for:
- Restrictive file or directory permissions
- Encryption at rest
- Data minimization or field redaction
- Explicit consent before persistent storage
- Segregation between users or Agent sessions
- Retention limits and automatic deletion
- Secure disposal of generated evidence packages
- Protection from backu ...[truncated 2243 chars]
- Remediation
View remediation
Remediation Suggestions
-
Request explicit consent before persistence
- Explain which files will be stored, where they will be stored, why storage is necessary, and how long they will be retained.
- Allow users to choose session-only processing when persistent storage is unnecessary.
-
Minimize collected data
- Request only evidence required for the selected complaint channel.
- Do not collect full identity-card or payment-account numbers until a filing process specifically requires them.
- Use masked values in drafts, such as the last four digits only.
-
Apply restrictive access controls
- Create evidence directories with owner-only permissions, equivalent to mode
0700. - Create evidence and generated-document files with owner-only permissions, equivalent to mode
0600. - Reject unsafe symbolic links and verify that the resolved path remains inside an approved private directory.
- Create evidence directories with owner-only permissions, equivalent to mode
-
Protect sensitive content at rest
- Encrypt evidence packages containing identity, financial, or medical-context information.
- Keep encryption keys separate from the evidence directory.
- Avoid placing sensitive evidence in automatically synchronized or broadly indexed directories.
-
Redact derivative documents
- Generate working copies with identity numbers, telephone numbers, account details, transaction identifiers, and unrelated personal information redacted.
- Preserve unredacted originals only when legally necessary.
-
Define retention and deletion controls
- Establish a short default retention period.
- Automatically delete temporary screenshots and generated drafts after export or case completion.
- Provide a clear command that securely removes the entire evidence package.
- Warn users that backups or synchronized copies may require separate deletion.
-
Separate user and case data
- Use a unique, non-guessable directory for each u ...[truncated 380 chars]
-
