Skip to main content

HeyForm CVE-2026-35198

| EUVDEUVD-2026-45984 CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-07-20 GitHub_M
9.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker joins/holds low-privileged team seat
  2. Delivery
    Inject malicious script into form rich-text/href
  3. Exploit
    Payload stored in form definition
  4. Execution
    Owner opens the form (UI:R)
  5. Persist
    Script executes in owner's session (scope change)
  6. Impact
    Steal tokens / take over owner account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated low-privileged team member (PR:L) who can create or edit form content within a shared team, and requires the higher-privileged team owner to subsequently view/open the attacker-crafted form (UI:R) for the stored payload to execute. Exploitation is limited to multi-user/team deployments where lower-trust members are granted form-authoring access; a single-owner instance with no untrusted collaborators is not exposed. The concrete injection vectors fixed are unescaped rich-text schema text and attribute values, the permissive 'style' attribute, and dangerous href URL protocols (javascript:, vbscript:, data:) in the answer-utils HTML serializer and form-renderer blocks.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H, base 9.0) shows a network-reachable, low-complexity attack that requires low-privilege authentication (PR:L, i.e. an existing team member) and victim interaction (UI:R, the owner must open the form), with a scope change (S:C) reflecting that code executes in a different, higher-privileged security context. That combination is internally consistent with the description of stored XSS leading to privilege escalation. Real-world risk is tempered by two limiting factors: the attacker must already be a member of the target team, and exploitation only triggers when the owner views the malicious form. There is no CISA KEV listing and EPSS was not provided, and no public exploit code was identified, so this is not evidence of active mass exploitation; however the source-code evidence is public, lowering the bar to reproduce. Net: a genuine high-priority issue for any multi-tenant/team HeyForm deployment where untrusted or lower-trust members can author form content, but not an unauthenticated internet-wide worming risk.

Exploit ScenarioDerived

A low-privileged member of a HeyForm team edits a form and inserts a rich-text/link element carrying a malicious payload (e.g. an event-handler attribute or a javascript:/data: href, or unescaped markup that breaks out of an attribute). The payload is stored and, when the team owner later opens that form in the builder or renderer, the script executes in the owner's authenticated session and is used to steal session tokens or perform privileged actions, escalating to full account takeover. No public exploit code is identified, but the fix commit and its test cases illustrate the exact injection patterns.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 20, 2026

Stored cross-site scripting in HeyForm's form builder (all versions prior to 3.0.0-rc.7) lets a low-privileged team member persist malicious JavaScript that fires in the browser of a team owner who later views the affected form, yielding full account takeover through privilege escalation. The flaw stems from insufficient sanitization of rich-text/HTML block content, allowing event-handler attributes and dangerous URL protocols to survive serialization. No public exploit has been identified at time of analysis, but the underlying commit (cc97d27) and GHSA advisory clearly document the injection vector, and the CVSS 9.0 rating reflects the high blast radius of hijacking an owner session.

RemediationAI

Vendor-released patch: upgrade to HeyForm 3.0.0-rc.7, which escapes serialized text and attributes, removes the 'style' attribute from the allowlist, blocks javascript:/vbscript:/data: href protocols, and purges unsafe tags and event-handler attributes; details are in advisory https://github.com/heyform/heyform/security/advisories/GHSA-chmm-jqpm-3pwx and commit cc97d27a57ae400fec23abf5dcf6f9533c3b5db3. Because 3.0.0-rc.7 is a release candidate, validate it in staging before production rollout. If immediate upgrade is not possible, reduce exposure by tightening who can author form content: restrict form-builder/edit privileges to trusted members, review and vet forms created by lower-trust team members before an owner opens them, and consider fronting the app with a Content-Security-Policy that disallows inline script execution to blunt injected JavaScript - noting CSP may break legitimate inline behaviors and must be tested. These are compensating controls only and do not close the underlying sanitization gap.

Affected VersionsENISA

heyform < 3.0.0-rc.7

Affected Packages

euvd heyform fix: 3.0.0-rc.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

HeyForm is an open-source form builder; the affected component is its shared answer/HTML rendering layer (packages/answer-utils/src/html-utils.ts and packages/form-renderer/src/blocks/Block.tsx). The root cause is CWE-79 (improper neutralization of input during web page generation): the serializer emitted user-controlled rich-text schema nodes and attribute values without HTML-escaping, and its allowlist permitted a permissive 'style' attribute and did not filter dangerous href URL protocols. The patch adds escapeText()/escapeAttribute() helpers, removes 'style' from allowed attributes, and introduces a UNSAFE_URL_PROTOCOL_REGEX (/^\s*(?:javascript|vbscript|data):/i) that strips javascript:, vbscript:, and data: href values, plus a purge routine that drops unsafe tags and event handlers such as onerror/onclick. Because the malicious content is stored and later rendered in a higher-privileged user's authenticated session, the executing script inherits the victim's DOM, tokens, and application privileges. CPE cpe:2.3:a:heyform:heyform:*:*:*:*:*:*:*:* identifies the affected product.

Know when Heyform gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.0 CRITICAL
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
vuln.today AI 9.0 CRITICAL

Authenticated low-priv member (PR:L) stores script that runs when owner views form (UI:R) in a higher-privilege context (S:C), enabling account takeover (C/I/A:H).

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Jul 20, 2026 - 17:02 EUVD
CVE Published
Jul 20, 2026 - 15:47 cve.org
CRITICAL 9.0

DescriptionCVE.org

HeyForm is an open-source form builder. Prior to version 3.0.0-rc.7, a stored cross-site scripting (XSS) vulnerability in the form builder allows a low-privileged team member to inject malicious JavaScript that executes when a team owner views the form, leading to complete account takeover through privilege escalation. Version 3.0.0-rc.7 contains a patch for the issue.

Executive ViewAI

Why It Matters

HeyForm form builder deployments prior to version 3.0.0-rc.7 are vulnerable to stored cross-site scripting that enables account takeover of team owners. A low-privileged team member can inject malicious code into form designs that executes when owners access the affected forms, granting the attacker complete control of the owner's account and all associated data.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
niche open-source form builder, limited enterprise deployment footprint
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +45
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy