Skip to main content

HeyForm CVE-2026-82291

| EUVDEUVD-2026-67822 HIGH
Permissive Cross-domain Security Policy with Untrusted Domains (CWE-942)
2026-08-28 VulnCheck GHSA-69g7-vm8m-997r
8.1
CVSS 3.1 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Identify HeyForm instance URL
  2. Delivery
    Craft malicious page with credentialed GraphQL fetch
  3. Exploit
    Phish logged-in HeyForm user to visit page
  4. Install
    Browser sends session cookie with cross-origin request
  5. C2
    Server reflects origin with Allow-Credentials: true
  6. Execute
    JavaScript reads authenticated API response
  7. Impact
    Exfiltrate submissions or modify account settings

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A02:2025 - Security Misconfiguration
ASVS 5.0
V13 - Configuration CORS policy restriction
Exploitation Conditions

A logged-in HeyForm user must actively visit an attacker-controlled web page while holding a valid HeyForm session cookie - this is the user-interaction prerequisite captured by UI:R in the CVSS vector. The HeyForm server must be reachable from the victim's browser (not restricted to localhost or a VPN-only network). No non-default configuration is required: the vulnerable origin: true, credentials: true combination was the default out-of-the-box CORS setting in all releases before 3.0.0-rc.8. Limiting factors include: the requirement for social engineering to direct a logged-in user to the malicious page; the session cookie's SameSite=Lax attribute, which prevents exploitation via top-level navigations but does NOT prevent cross-origin fetch/XMLHttpRequest from embedded attacker pages; and the need to know or guess the target HeyForm instance URL.

Impact

The vendor-assigned CVSS 8.1 (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N) is well-calibrated: the flaw is network-exploitable with low complexity and no required privileges, but mandates user interaction (UI:R) because a logged-in victim must be lured to an attacker-controlled page. The unchanged scope (S:U) reflects that exploitation operates within the victim's existing HeyForm session context rather than pivoting to other systems. Real-world risk is meaningful for self-hosted deployments where users maintain long-lived sessions - a common pattern for internal teams. The session cookie is HttpOnly and SameSite=Lax; however, SameSite=Lax does not block cross-origin fetch/XMLHttpRequest calls from embedded attacker pages, so it does not mitigate this flaw. No EPSS score was provided in the input data, no KEV listing exists, and no POC is identified, so opportunistic or automated exploitation is not confirmed. The social engineering prerequisite (phishing a logged-in user) moderately limits mass exploitation but does not eliminate targeted risk against high-value deployments.

Exploit ScenarioDerived

An attacker registers a malicious domain and embeds JavaScript that issues fetch requests with credentials: 'include' to the victim organization's HeyForm instance at its known URL. The attacker sends a phishing link to a HeyForm user with an active session; when the user's browser loads the page, it automatically attaches the HeyForm session cookie to the cross-origin GraphQL queries, the server reflects the malicious page's origin and permits the credentialed response, and the attacker reads back form submissions or modifies the victim's account settings. No POC has been identified at time of analysis, but the attack requires only standard browser fetch APIs.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 28, 2026

Cross-origin credential exposure in HeyForm before 3.0.0-rc.8 allows any attacker-controlled web page visited by a logged-in user to make fully authenticated GraphQL API requests against the HeyForm server. The server's default CORS configuration (origin: true, credentials: true) unconditionally echoed the request Origin header back as Access-Control-Allow-Origin while also asserting Access-Control-Allow-Credentials: true, defeating the browser's same-origin policy for all origins. This exposes workspaces, projects, forms, submissions, and respondent data to exfiltration and permits account settings modification; no public exploit has been identified at time of analysis.

RemediationAI

Upgrade HeyForm to version 3.0.0-rc.8 or later, which replaces the reflective origin: true CORS setting with an explicit origin allowlist implemented in packages/server/src/config/cors/index.ts (patch commit bf9d738ca70ae5641c0c7372982b00365c5144d4, advisory GHSA-fg7j-rmgr-rc9g). After upgrading, set the CORS_ALLOWED_ORIGINS environment variable to a comma-separated list of trusted dashboard origins such as CORS_ALLOWED_ORIGINS=https://forms.example.com; when omitted, it defaults to the value of APP_HOMEPAGE_URL. As a compensating control before patching, restrict network access to the HeyForm server to known-trusted IP ranges or place it behind a VPN, preventing attacker-controlled pages from reaching the GraphQL endpoint - note this trade-off reduces availability for remote users. Do not use origin: true or any wildcard origin configuration alongside credentials: true in any deployment.

Affected VersionsENISA

heyform 0 <3.0.0-rc.8

Affected Packages

euvd heyform fix: 3.0.0-rc.8

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 a self-hosted open-source form builder built on Node.js with a NestJS backend serving a GraphQL API. The root cause is CWE-942 (Permissive Cross-domain Policy with Untrusted Domains): the NestJS enableCors({ origin: true, credentials: true }) call in packages/server/src/main.ts caused the server to reflect any value present in the incoming Origin request header directly into the Access-Control-Allow-Origin response header, while simultaneously emitting Access-Control-Allow-Credentials: true. Per the CORS specification, browsers permit cross-origin reads of credentialed responses only when Access-Control-Allow-Origin exactly matches the request's origin - origin reflection trivially satisfies this check for any origin. The affected surface is the GraphQL endpoint used by the HeyForm dashboard. All versions captured by CPE cpe:2.3:a:heyform:heyform:*:*:*:*:*:*:*:* prior to 3.0.0-rc.8 ship this configuration by default.

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 (VulnCheck) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
vuln.today AI 8.1 HIGH

Network-reachable with no auth required, but user must visit attacker page (UI:R); no availability impact; confidentiality and integrity both High via full authenticated GraphQL API access.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

HeyForm before 3.0.0-rc.8 reflects the request Origin header in CORS responses while allowing credentials, enabling cross-origin requests with authentication. Attackers can execute authenticated GraphQL queries from malicious pages visited by logged-in users to access workspaces, projects, forms, submissions, and respondent data, or modify account settings.

Technical POC Analysis

Evidence note: the supplied GHSA is GHSA-fg7j-rmgr-rc9g, self-rated Critical 9.3 with CWE-346 (Origin Validation Error) and "No known CVE"; the task metadata gives CVE-2026-82291, CWE-942, CVSS 8.1.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

HeyForm versions before 3.0.0-rc.8 have a critical CORS vulnerability that allows any website to exfiltrate form data, submissions, and respondent information from logged-in users. This directly exposes organizational survey data and customer information to any website operator. The attack requires no attacker authentication-merely visiting a compromised site while logged into HeyForm is sufficient for data theft.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Low
self-hosted open-source form builder, niche enterprise adoption
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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