---
id: CVE-2026-102615
title: >-
  HeyForm: Uploaded HTML files are served as text/html on the app origin with no
  CSP — stored XSS
summary: >-
  HeyForm is an open-source form builder. Prior to 3.0.1, /api/upload accepts a
  file according to the client-controlled multipart file.mimetype while
  retaining an HTML filename, and static/upload serves the resulting file as
  text/html with…
severity: high
cvss: 7.6
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N'
cvssSource: cna
cwe:
  - CWE-79
vendor: heyform
product: heyform
affected:
  - heyform < 3.0.1
published: '2026-11-05'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T15:32:30.406Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-102615'
references:
  - url: 'https://github.com/heyform/heyform/security/advisories/GHSA-pxw5-pjrc-j758'
    label: 'https://github.com/heyform/heyform/security/advisories/GHSA-pxw5-pjrc-j758'
  - url: >-
      https://github.com/heyform/heyform/commit/849f7101d4370b29e716b2d7ee14a86c2f598f3a
    label: >-
      https://github.com/heyform/heyform/commit/849f7101d4370b29e716b2d7ee14a86c2f598f3a
  - url: 'https://github.com/heyform/heyform/releases/tag/v3.0.1'
    label: 'https://github.com/heyform/heyform/releases/tag/v3.0.1'
tags:
  - cve.org
ingestedAt: '2026-11-05T21:36:00.904Z'
epss: 0.00252
epssPercentile: 0.16793
---

## Overview

HeyForm is an open-source form builder. Prior to 3.0.1, /api/upload accepts a file according to the client-controlled multipart file.mimetype while retaining an HTML filename, and static/upload serves the resulting file as text/html with contentSecurityPolicy: false. An ordinary user can therefore upload active HTML that executes on the HeyForm origin when a victim opens its returned URL. The same-origin script can access /graphql with the victim's session and read or modify data available to that account. The code also permits upload requests tied to an active public form through formId, openToken, and a fieldId belonging to a file or signature question, although the advisory did not fully verify that unauthenticated path end to end. This issue is fixed in version 3.0.1.

## Affected

- `heyform < 3.0.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
