other
Warning
- Location
- SKILL.md:39
- Finding
- Potential Disclosure of Sensitive QR Content to a Third-Party Service<` 6. If the user wants to save it, write the decoded base64 data to a `.png` file ### Decode a QR Code 1. Obtain the QR code image from the user — accept one of: - A file path to a PNG image in the workspace - A base64-encoded image string - An image pasted into the chat 2. If a file path is provided, read it and convert to base64 3. Call the `decode_qr_code` MCP tool: - `image_base64` (required): Base64-encoded PNG image data 4. Return the decoded text to the user ``` The included usage example explicitly demonstrates processing a credential: ```markdown **Generate:** > "Generate a QR code for https://github.com" > "Create a 256px QR code containing my WiFi config: WIFI:T:WPA;S:MyNetwork;P:password123;;" ``` The API reference confirms that this data is transmitted to a remote endpoint: ```text URL: https://qrcode.api4claw.com/mcp Protocol: MCP (Model Context Protocol) over HTTP Protocol Version: 2024-11-05 ``` ```markdown | `text` | string | Yes | Text to encode into QR code (max 1000 characters) | ``` ```markdown | `image_base64` | string | Yes | Base64-encoded PNG ...[truncated 2757 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Prefer a vetted local QR generation and decoding library so QR contents do not leave the execution environment. 2. If remote processing remains necessary, display the destination domain and obtain explicit user confirmation immediately before every transmission. 3. Add a prominent warning not to submit passwords, authentication QR codes, access tokens, private tickets, payment data, or other secrets. 4. Detect common sensitive formats, such as Wi-Fi credentials and one-time-password provisioning URIs, and require enhanced confirmation or reject them by default. 5. Crop images to the QR region and remove metadata locally before uploading them. 6. Document the remote service's operator, retention period, logging practices, deletion policy, data-processing jurisdiction, and transport-security expectations. 7. Restrict network access to the exact verified HTTPS endpoint and validate its identity through the host environment's standard TLS controls. 8. Avoid examples containing realistic credentials. Replace the Wi-Fi password example with an explicitly non-sensitive placeholder. 9. Provide a local-only mode for sensitive requests and fail closed when the privacy properties of the remote service cannot be established. ]]>
