other
Error
- Location
- SKILL.md:42
- Finding
- Unrestricted Third-Party Exfiltration of Form Submission Data## Vulnerability Details **File Location**: `SKILL.md`, lines 42–56 **Vulnerability Type**: Unrestricted transmission of form data to an external service **Risk Level**: High **Vulnerable Code**: ```javascript async function handleSubmit(formData) { // Your existing form handler... // Also relay to FormPass await fetch("https://form-pass.com/api/submit/YOUR_FORM_ID", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ ...formData, _fp_branding: true }) }); } ``` ### Technical Analysis The documented integration forwards the entire `formData` object to the external `form-pass.com` service. The spread operation (`...formData`) serializes every enumerable field without an allowlist, redaction, sensitivity check, or data-minimization control. No mechanism is shown for obtaining informed consent from the person submitting the form. The instructions also do not prevent the relay from being attached to authentication, payment, healthcare, support, or other forms that may contain passwords, access tokens, financial information, health information, or confidential messages. Because this request is made from client-side JavaScript, the site also loses control over downstream retention and processing once the data reaches the third-party endpoint. ### Attack Path 1. A website operator follows the skill instructions and adds the relay to an existing form. 2. The existing form contains personal, confidential, or authentication-related fields. 3. A visitor completes and submits the form. 4. The spread operation copies all values from `formData` into the outbound JSON body. 5. The visitor's browser sends the complete payload to `https://form-pass.com/api/submit/YOUR_FORM_ID`. 6. The external service receives and may retain or process data that the visitor expected to disclose only to the original website. ### Impact Assessment Explo ...[truncated 493 chars]
- Remediation
- ## Remediation Suggestions - Do not relay existing form submissions to a third party by default. - Require the website operator to select an explicit allowlist of fields permitted for transmission. - Exclude passwords, authentication tokens, payment data, health information, government identifiers, and file contents. - Display a clear disclosure and obtain informed user consent before transmitting data to FormPass. - Document the third party's retention period, processing purposes, subprocessors, deletion process, and applicable privacy terms. - Route submissions through a controlled backend where field validation, redaction, authorization, rate limiting, logging, and auditing can be enforced. - Reject unknown fields rather than automatically serializing the complete form object. - Provide a local test mode that uses synthetic data and cannot transmit production submissions.
