other
- Location
SKILL.md:42- Finding
Unrestricted Third-Party Exfiltration of Form Submission Data
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 42–56
Vulnerability Type: Unrestricted transmission of form data to an external service
Risk Level: HighVulnerable 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
formDataobject to the externalform-pass.comservice. 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
- A website operator follows the skill instructions and adds the relay to an existing form.
- The existing form contains personal, confidential, or authentication-related fields.
- A visitor completes and submits the form.
- The spread operation copies all values from
formDatainto the outbound JSON body. - The visitor's browser sends the complete payload to
https://form-pass.com/api/submit/YOUR_FORM_ID. - 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
View 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.
