Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Formie site with multi-page forms
-
DeliveryEnumerate sequential submissionId via submit action
-
ExploitLoad victim's incomplete submission (no ownership check)
-
ExecutionOverwrite/tamper submission field data
-
ImpactPoisoned data forwarded via notifications/integrations on completion
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | The affected Craft CMS site must use Formie multi-page forms or the save-for-later feature, since only incomplete submissions (isIncomplete=true) can be targeted; completed submissions are unaffected. Exploitation requires an in-progress submission to exist for enumeration/hijack, and the attacker needs no authentication, no session, and no user interaction against the anonymous |
| Impact | This is a genuine, high-impact authorization flaw (CWE-639 IDOR) that deserves prompt patching, though not emergency-tier response. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N, 8.2) is internally consistent with the description: a fully unauthenticated network attacker can enumerate sequential submission IDs against the anonymous |
| Exploit ScenarioDerived | An unauthenticated attacker scripts requests to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Unauthenticated attackers can overwrite or hijack other users' in-progress multi-page or save-for-later submissions in the Craft CMS Formie plugin by enumerating sequential submission IDs against the anonymous formie/submissions/submit endpoint, which trusted a client-supplied submissionId with no session binding, ownership check, or edit-token validation (CWE-639, CVSS 3.1 base 8.2, vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N, so no authentication or user interaction is required). Affected installations are Formie 3.0.0 through 3.1.30 on Craft 5 and all versions before 2.2.23 on Craft 4; completed submissions are unaffected because the vulnerable code path only loads records with isIncomplete=true, meaning exposure requires the site to actually use multi-page forms or save-for-later. Exploitation status: no public exploit identified at time of analysis, and the flaw is not listed in CISA KEV; vendor-released patches exist (3.1.31 for Craft 5, 2.2.23 for Craft 4).
RemediationAI
Upgrade Formie to the vendor-released patch for your Craft branch: 3.1.31 on Craft 5 or 2.2.23 on Craft 4, per the advisory at https://github.com/verbb/formie/security/advisories/GHSA-584p-f93j-wpgc and the release tags https://github.com/verbb/formie/releases/tag/3.1.31 and https://github.com/verbb/formie/releases/tag/2.2.23. The upstream commits (https://github.com/verbb/formie/commit/323c2fe647a76fbccadf749728ee4ad9420efee1 and https://github.com/verbb/formie/commit/78a298ac3baf85ac283988dfce9cd42c9b958f16) implement the fix by requiring the resumed submission to match the session-bound submission or present a valid submissionEditToken, and by rejecting cross-form ID reuse; applying them on top of an older release is possible but the tagged releases are the supported path. There is no reliable workaround short of upgrading: disabling multi-page forms and the save-for-later feature removes the targetable incomplete-submission state and therefore the practical exploit path, but the advisory explicitly notes this only reduces exposure rather than removing the vulnerability, and it degrades legitimate user experience for long forms. The same patch release also fixes separate authorization and SSRF issues in integrations/form-settings and sent-notifications/get-resend-modal-content plus an XSS in the form importer, so deferring the upgrade leaves those additional weaknesses open. If immediate upgrade is impossible, temporary compensating controls include blocking or rate-limiting anonymous POSTs to the formie/submissions/submit endpoint at the WAF/reverse-proxy layer - which will break legitimate multi-page form submission for real users - or minimizing the window by monitoring for anomalous sequential submissionId enumeration in application logs; note that all of these are mitigations only and do not address the underlying missing authorization check.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-639, Authorization Bypass Through User-Controlled Key - a classic IDOR. Formie is a Craft CMS form-building plugin distributed as the Composer package verbb/formie (CPE pkg:composer/verbb_formie). Its front-end controller action SubmissionsController::actionSubmit accepts a client-supplied submissionId and, via the internal _populateSubmission helper, loaded any matching incomplete submission (isIncomplete=true) without verifying that the record belonged to the requesting session or that a valid edit token was presented. Because the submit action is reachable anonymously and submission IDs are sequential, an attacker could walk the ID space and persist tampered field data into another person's draft submission; that data would then be carried into notifications and integrations when the legitimate user finished the form. This was an incomplete remediation of GHSA-pgxq-p76c-x9cg, which added edit-token validation to the save-submission action but left the equivalent gap in submit. The upstream fix (commits 323c2fe and 78a298ac) adds an _authorizeExistingSubmission() gate: for site requests the submission ID must either match the session-bound submission returned by Form::getCurrentSubmission() or be accompanied by a valid submissionEditToken when editingSubmission is set, and cross-form ID reuse is rejected with a BadRequestHttpException. The same commit series also tightened front-end parameter handling by restricting title, statusId, and isSpam assignment to control-panel requests, and it bundles fixes for other advisories (missing authorization on integrations/form-settings permitting SSRF and integration-credential exposure, missing authorization on sent-notifications/get-resend-modal-content, sensitive parameters accepted by save-submission, and an XSS issue when importing forms with manipulated title, handle, or notification names), so upgrading also closes those separate weaknesses.
Know when the next one hits your stack
- 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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
Unauthenticated remote enumeration of sequential IDs (PR:N/AC:L) lets an attacker overwrite another user's submission (I:H) with incidental data read (C:L) and no availability impact.
Primary rating from Vendor (https://github.com/verbb/formie).
CVSS VectorVendor: https://github.com/verbb/formie
DescriptionCVE.org
Impact
The anonymous front-end action formie/submissions/submit (SubmissionsController::actionSubmit) trusted a client-supplied submissionId when loading an incomplete submission, with no session binding, ownership check, or edit token validation.
An unauthenticated attacker could enumerate sequential submission IDs and overwrite or hijack another user's in-progress (multi-page / save-for-later) submission. Tampered data could be persisted and forwarded via notifications and integrations when the submission was completed.
Completed submissions were not affected (isIncomplete=true filter). This is an incomplete remediation of GHSA-pgxq-p76c-x9cg, which added edit-token validation to save-submission but not to submit.
Patches
Fixed in 3.1.31 (Craft 5) and 2.2.23 (Craft 4).
When resuming an existing submission on a site request, the submission ID must match the session-bound submission (Form::getCurrentSubmission()) or a valid submissionEditToken when editingSubmission is set. Cross-form submission ID reuse is also rejected.
Workarounds
No reliable workaround without upgrading. Disabling multi-page forms or save-for-later reduces exposure but does not remove the vulnerability.
- Reported by Jorge González (jorge@jmilla.es)
Technical POC Analysis
CWE-639 (Authorization Bypass Through User-Controlled Key); the advisory also tags CWE-862 (Missing Authorization).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The Craft CMS Formie plugin - versions 3.0.0 through 3.1.30 on Craft 5 and all releases before 2.2.23 on Craft 4 - allows unauthenticated outsiders to overwrite or hijack visitors' in-progress multi-page and save-for-later form submissions by simply guessing sequential submission IDs. Any organization using those form features risks corrupted or lost customer and prospect data, plus the reputational harm of having user submissions altered by third parties, and the attack requires no credentials or user interaction. Vendor patches are available, so this is a manageable, time-bound remediation rather than an open-ended exposure.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-85547
GHSA-584p-f93j-wpgc
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB