Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocate public Formie form with dynamic Hidden field
-
DeliveryCraft Twig payload in User Agent/Referer/query/cookie
-
ExploitRequest page to trigger Twig render
-
ExecutionServer-side template evaluation in Craft
-
ImpactDisclose secrets or execute code
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V1 - Encoding and Sanitization Template injection prevention
|
| Exploitation Conditions | Exploitation requires the target Craft CMS site to publicly render a Formie form (verbb/formie 3.0.0-beta.1-3.1.26) that contains a Hidden field configured with one of the request-derived dynamic default value types: HTTP User Agent, HTTP Referer URL, Current URL, Current URL without Query String, Query Parameter, or Cookie Value. The attacker then supplies Twig syntax in the corresponding request element (that header, cookie, URL, or query parameter) and triggers server-side evaluation simply by causing the form to render. Per the CVSS vector (PR:N/UI:N) the attacker is unauthenticated and no victim interaction is needed. The principal limiting factor is that this Hidden-field-with-request-derived-default configuration is not the default form setup - sites without such a field are not exploitable - and the ultimate impact (info disclosure vs. state change vs. RCE) further depends on which application objects and functions the site's Twig environment exposes. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, score 9.8) describes network-reachable, unauthenticated, low-complexity exploitation with full CIA impact - consistent with unauthenticated SSTI-to-RCE. The key real-world limiter is configuration-dependent: exploitation is only possible if a public form actually contains a Hidden field wired to a request-derived default, which is not Craft/Formie's default posture, so the true attack surface is narrower than the 9.8 alone implies. No EPSS score, KEV listing, SSVC decision, or POC was supplied, so probability-of-exploitation signals are absent; this should be treated as high-impact-if-configured rather than confirmed widespread exploitation. There is no conflict between the vector and the description - both point to remote unauthenticated triggering - but the automatability and in-the-wild status are genuinely unknown from the provided data. |
| Exploit ScenarioDerived | An attacker identifies a public Craft CMS site running Formie with a contact or signup form whose Hidden field captures, for example, the Referer or a query parameter as its default. The attacker requests the form page with a crafted Twig payload placed in that request element (e.g., the Referer header or ?param= value); when Formie renders the form, Craft's Twig engine evaluates the payload server-side, letting the attacker read application secrets or, depending on exposed Twig capabilities and site configuration, execute code. No authentication or user interaction is required and complexity is low, though no public POC was provided. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 06, 2026
Server-side template injection in Formie, a forms plugin for Craft CMS 5 (verbb/formie 3.0.0-beta.1 through 3.1.26), allows unauthenticated attackers to inject Twig syntax through request-controlled inputs that Hidden fields use as dynamic default values. When a public form contains a Hidden field seeded from the User Agent, Referer, Current URL, a query parameter, or a cookie, the attacker-supplied value reaches Craft's Twig rendering layer and is evaluated server-side, potentially yielding information disclosure, application-state modification, or remote code execution. No public exploit identified at time of analysis, though the flaw is tagged RCE/SSTI and rated CVSS 9.8.
RemediationAI
Vendor-released patch: update verbb/formie to 3.1.27 or later (composer require verbb/formie:^3.1.27 then run migrations), per the advisory at https://github.com/verbb/formie/security/advisories/GHSA-565m-g33j-jq96. If immediate patching is not possible, the vendor-documented workaround is to stop using request-derived Hidden field defaults on public forms - specifically the HTTP User Agent, HTTP Referer URL, Current URL, Current URL without Query String, Query Parameter, and Cookie Value options - reconfiguring those fields to static or custom admin-authored defaults instead; the trade-off is loss of any legitimate request-context capture those fields provided. Alternatively, remove the affected Hidden fields from public forms entirely until the update is applied, accepting that any downstream logic or analytics depending on those hidden values will break until the fields are restored on the patched version.
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 vulnerability lives in Formie's Hidden field front-end render path. Formie is a form-builder plugin for Craft CMS, which is built on the Twig template engine (via Yii). Hidden fields support 'dynamic' default values that Formie copies from the incoming HTTP request (User Agent, Referer, Current URL, Current URL without query string, a named query parameter, or a cookie value). That request-derived value was assigned to the field's defaultValue and then passed through Twig in Hidden::getFrontEndInputOptions(), meaning untrusted request data was treated as a template rather than as data. This is a textbook CWE-1336 (Server-Side Template Injection in a template engine): because Craft's normal Twig environment exposes application objects and functions, evaluating attacker Twig can escalate from expression evaluation to sensitive-data access or code execution. The fix restricts Twig rendering to the admin-authored 'custom' default option and treats all request-derived defaults as plain strings. The affected package is pkg:composer/verbb_formie.
Know when Ssti 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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated, network-reachable SSTI triggered by simply rendering the form (AV:N/PR:N/UI:N); AC:L since exploitation is reliable once the request-derived Hidden field exists, with full CIA impact from Twig-based RCE.
Primary rating from Vendor (https://github.com/verbb/formie).
CVSS VectorVendor: https://github.com/verbb/formie
DescriptionCVE.org
Summary
Formie Hidden fields could evaluate request-derived values as Twig during front-end form rendering.
When a Hidden field used a dynamic default value such as HTTP User Agent, Referer URL, Current URL, Query Parameter, or Cookie Value, the value was copied from the incoming request and later passed to Craft’s Twig rendering layer. This allowed an unauthenticated attacker to provide Twig syntax in request-controlled input and have it evaluated server-side when the form was rendered.
Affected Versions
verbb/formie for Craft 5:
- Affected: >= 3.0.0-beta.1, <= 3.1.26
- Patched: 3.1.27
Impact
An unauthenticated attacker could trigger server-side template evaluation by visiting a public form containing a Hidden field configured with a request-derived default value.
Because Craft’s normal Twig environment exposes application objects, this may lead to disclosure of sensitive information, modification of application state, or remote code execution depending on the site configuration and available Twig capabilities.
Technical Details
The issue exists in the Hidden field front-end render path. Request-derived Hidden field defaults were assigned to the field’s defaultValue, then rendered via Twig in Hidden::getFrontEndInputOptions().
The fix ensures Twig rendering is only performed for the custom default option, where the template source is admin-authored. Request-derived default options are now treated as plain strings.
Patches
Update to Formie 3.1.27 or later.
Workarounds
Until patched, avoid using request-derived Hidden field defaults on public forms, including:
- HTTP User Agent
- HTTP Refer URL
- Current URL
- Current URL without Query String
- Query Parameter
- Cookie Value
Alternatively, remove affected Hidden fields from public forms until the update is applied.
Credit
Name: Yanchon918s Email: [ao9s@ao9s.net](mailto:ao9s@ao9s.net)
Executive ViewAI
Formie plugin for Craft CMS 5 (versions 3.0.0-beta.1 through 3.1.26) contains a server-side template injection vulnerability that permits unauthenticated attackers to execute arbitrary code through public web forms. Any organization exposing forms via Formie faces immediate risk of data breach, system compromise, or malware distribution without remediation.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable Hidden fields configured with dynamic default values sourced from request headers or parameters; (2) Deploy WAF rules to reject payloads containing Twig delimiters; (3) Move public forms behind authentication or IP allowlists; (4) Monitor form submission logs for template injection patterns ({{ , {%, {
characters). Monitor vendor security advisories for patch availability.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Rejetto HTTP File Server, up to and including version 2.3m, is vulnerable to a template injection vulnerability. Rated c
Invision Community 5.0.0 through 5.0.6 contains an unauthenticated remote code execution vulnerability in the template e
Remote code execution in the WPML WordPress multilingual plugin (versions up to and including 4.6.12) allows Contributor
Server-side template injection in Adobe Commerce, Adobe Commerce B2B, and Magento Open Source allows remote unauthentica
Server-Side Template Injection in OpenCTI notifier templates allows privileged administrators with 'Manage customization
Unauthenticated remote code execution in Rejetto HFS2 (HTTP File Server) through version 2.4.0 lets an attacker execute
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve
changedetection.io is an open source web page change detection, website watcher, restock monitor and notification servic
A server side template injection vulnerability in CrushFTP in all versions before 10.7.1 and 11.1.0 on all platforms all
Remote code execution in WGDashboard 4.3.2 and earlier lets authenticated attackers inject Server-Side Template Injectio
Gibbon through 26.0.00 allows /modules/School%20Admin/messengerSettings.php Server Side Template Injection leading to Re
Server-side template injection in the TYPO3 'Powermail' extension lets an anonymous user submit Fluid template syntax th
EUVD-2026-62518
GHSA-565m-g33j-jq96
NVD
CVE.org
EPSS
Exploit-DB