Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege content author
-
DeliveryInject malicious formaction attribute
-
ExploitSanitizer fails to neutralize URI
-
ExecutionVictim views and activates control
-
ImpactExecute JavaScript in victim session
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 | Exploitation requires an authenticated account with privileges to submit HTML content that passes through Formwork's DomSanitizer (PR:L) - this is not an unauthenticated flaw. The specific trigger is an HTML element bearing a 'formaction' attribute, which in Formwork ≤2.3.12 was absent from the HtmlReference URI-attribute list and therefore not URI-sanitized, allowing a javascript:-style or script-bearing payload to survive. Exploitation is further LIMITED by required victim interaction (UI:P): a second user must view and activate the injected form control for the payload to execute. The flaw is fixed in 2.3.13, which adds 'formaction' (and related attributes like archive, cite, data, poster, usemap) to the sanitized set. |
| Impact | This is a medium-severity stored/DOM cross-site scripting flaw (CWE-79) whose real-world priority is modest. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N, score 5.1) tells a consistent story: remotely reachable and low-complexity, but gated by two meaningful barriers - PR:L means the attacker must already hold a low-privilege authenticated account (i.e. an account able to submit the sanitizer-processed content), and UI:P means a victim must interact with the malicious element before the payload fires. Impact is limited to integrity in the victim's browser context (VI:L) with no confidentiality or availability impact asserted by the vendor. No EPSS score was provided, the CVE is NOT on CISA KEV, and no public proof-of-concept was supplied in the intelligence - so there is no public exploit identified at time of analysis. The only corroborating sources are VulDB (the reporter) and the vendor's own GHSA advisory plus the patch commit, which confirm the vulnerability and fix but indicate no observed exploitation. Note one conflict worth flagging to defenders: the vendor scored confidentiality as VC:N, yet formaction-based XSS executing in an authenticated admin/editor session can realistically read session-scoped data, so my independent assessment raises confidentiality to Low - verify impact scope against your deployment's role model. Net: a legitimate bug to patch on a normal cycle, not an emergency. |
| Exploit ScenarioDerived | An attacker holding a low-privilege authoring account in a Formwork site injects a crafted 'formaction' attribute that the DomSanitizer fails to recognize as a URI-bearing attribute, smuggling a script payload past sanitization. When an administrator or another user later views the content and activates the associated form control (e.g. clicks the button), the formaction payload executes JavaScript in their browser session. No public exploit code was provided in the intelligence, so exploitation would require the attacker to craft the payload themselves. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Stored cross-site scripting in the Formwork PHP content management system (versions up to and including 2.3.12) lets an authenticated user who can submit HTML content inject a script-bearing 'formaction' URI that survives the built-in DomSanitizer. The payload does not fire on its own: a second user must view and activate the injected form control (UI:P/UI:R) for the script to execute, which is why this is rated medium severity (CVSS 4.0 base 5.1; independently assessed CVSS 3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N). The flaw is fixed in Formwork 2.3.13, and no public exploit code has been identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade Formwork to 2.3.13 (https://github.com/getformwork/formwork/releases/tag/2.3.13), which incorporates the fix commit 729701e59c5886685c5a1d477bdc3035e41f18b1 and PR https://github.com/getformwork/formwork/pull/940; if a full upgrade is not immediately possible, the same change can be back-ported by adding 'formaction' (and the related URI attributes archive, background, cite, classid, codebase, data, longdesc, manifest, poster, src, usemap) to the sanitized attribute set in formwork/src/Sanitizer/Reference/HtmlReference.php - note that a hand-applied backport will be overwritten by a later framework update and must be re-validated against the vendor diff. As compensating controls, restrict the ability to submit raw/sanitized HTML to trusted accounts only (the flaw requires an authenticated user with HTML submission privileges), or temporarily disable rendering of user-supplied HTML blocks and form controls in the affected application, which reduces functionality for legitimate content authors but removes the injection path. Because exploitation also requires a victim to view and activate the injected control, deploying a Content-Security-Policy that blocks inline script and javascript: URIs limits impact but does not fix the underlying sanitizer gap; it is a backstop, not a substitute for upgrading to 2.3.13. Additional context is in the GitHub advisory at https://github.com/getformwork/formwork/security/advisories/GHSA-p78q-v3pr-p87j and the VulDB entry at https://vuldb.com/vuln/413925.
Affected VersionsENISA
Affected Packages
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
Formwork ships a PHP HTML sanitizer (formwork/src/Sanitizer/DomSanitizer.php) that cleans user-supplied markup by walking DOM nodes and URL-bearing attributes through an allowlist defined in formwork/src/Sanitizer/Reference/HtmlReference.php, which is used by DomSanitizer::sanitizeNodeAttribute(). In Formwork <=2.3.12 that allowlist covered URI attributes such as 'src' and 'background' but omitted 'formaction', so a form control carrying formaction="javascript:..." (or another script-bearing scheme) bypassed URI scheme validation and was emitted into rendered output. This is a classic CWE-79 cross-site scripting case with an insufficient allowlist root cause rather than an encoding failure: the sanitizer simply never inspected the attribute. The upstream fix (commit 729701e59c5886685c5a1d477bdc3035e41f18b1, PR #940) expands the sanitized URI-attribute set to include 'formaction' alongside 'archive', 'background', 'cite', 'classid', 'codebase', 'data', 'longdesc', 'manifest', 'poster', 'src' and 'usemap'. The single affected CPE is cpe:2.3:a:getformwork:formwork:*:*:*:*:*:*:*:*, covering all releases from the affected line through 2.3.12; the technology stack is PHP with server-side DOM sanitization, tagged PHP/XSS/Formwork.
Know when Formwork 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Authenticated authoring access needed (PR:L) and victim must activate the control (UI:R); XSS crosses into the victim's browser context (S:C) with limited confidentiality and integrity, no availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
DescriptionCVE.org
A security vulnerability has been detected in getformwork formwork up to 2.3.12. Impacted is the function DomSanitizer::sanitizeNodeAttribute of the file formwork/src/Sanitizer/DomSanitizer.php of the component URI Sanitizer. Such manipulation of the argument formaction leads to cross site scripting. The attack may be launched remotely. Upgrading to version 2.3.13 is recommended to address this issue. The name of the patch is 729701e59c5886685c5a1d477bdc3035e41f18b1. Upgrading the affected component is advised.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Formwork is a flat file-based Content Management System (CMS). Rated medium severity (CVSS 6.5), this vulnerability is r
Formwork CMS versions 2.0.0 through 2.3.3 fail to validate user privileges during account creation, allowing authenticat
Formwork is a flat file-based Content Management System (CMS). Rated medium severity (CVSS 4.8), this vulnerability is r
Stored XSS in Formwork through 2.3.14 allows unauthenticated remote attackers to inject persistent malicious markup into
A stored cross-site scripting (XSS) vulnerability in the component /formwork/panel/dashboard of Formwork v1.12.1 allows
EUVD-2026-93467
GHSA-3j63-cg5x-w8f2
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB